Jak mogę kontrolować szerokość etykiety?


144

Znacznik etykiety nie ma właściwości „width”, więc jak mam kontrolować szerokość tagu etykiety?


8
Etykieta jest elementem wbudowanym, nie może mieć wartości szerokości; aby to zrobić, musisz wstawić display:blocklub float:left.
Russell Dias

Odpowiedzi:


188

Oczywiście używając CSS ...

label { display: block; width: 100px; }

Ten widthatrybut jest przestarzały, a do kontrolowania tego rodzaju stylów prezentacji należy zawsze używać CSS.


7
Ale to prowadzi do przerwy w kodzie, czego prawdopodobnie OP nie chce w pierwszej kolejności.
Konrad Rudolph

49
@Konrad Wtedy OP może użyć floatlubdisplay: inline-block
Josh Stodola

2
Tak, to właśnie chciałem osiągnąć. :-) To jest tutaj główny aspekt, ponieważ jest to trudna część. Samo ustawienie widthnie będzie miało większego znaczenia.
Konrad Rudolph

@JoshStodola oh shiiiiit ..... inline-block nigdy nie działał dla mnie, próbowałem float i bham! Zastanawiam się, dlaczego inline-block nie działa dla mnie
Dheeraj

@lostchild inline-block nie ignoruje białych znaków, może to być powód, dla którego masz z nim problemy.
Alex Podworny

91

Użycie bloku inline jest lepsze, ponieważ nie wymusza rysowania pozostałych elementów i / lub kontrolek w nowej linii.

label {
  width:200px;
  display: inline-block;
}

29

Elementy wbudowane (takie jak SPAN, LABEL itp.) Są wyświetlane w taki sposób, że ich wysokość i szerokość są obliczane przez przeglądarkę na podstawie ich zawartości. Jeśli chcesz kontrolować wysokość i szerokość, musisz zmienić bloki tych elementów.

display: block;powoduje, że element jest wyświetlany jako jednolity blok (jak znaczniki DIV), co oznacza, że ​​po elemencie występuje koniec wiersza (nie jest on w wierszu). Chociaż możesz użyć display: inline-blockdo rozwiązania problemu z podziałem wiersza, to rozwiązanie nie działa w IE6, ponieważ IE6 nie rozpoznaje wbudowanego bloku. Jeśli chcesz, aby była kompatybilna z różnymi przeglądarkami, przeczytaj ten artykuł: http://webjazz.blogspot.com/2008/01/getting-inline-block-working-across.html


4

Nadanie szerokości Label nie jest właściwym sposobem. aby sobie z tym poradzić, należy wziąć jeden element div lub strukturę tabeli. ale nadal, jeśli nie chcesz zmieniać całego kodu, możesz użyć następującego kodu.

label {
  width:200px;
  float: left;
}

„Nadawanie szerokości etykiecie w niewłaściwy sposób” kontrolowania szerokości elementu etykiety? Jesteś pewny?
Oriol

Tak .. Ponieważ kiedy chcemy stworzyć jakiś układ lub określoną strukturę, wtedy mamy do dyspozycji właściwości div i table. Etykieta nie jest przeznaczona do podawania szerokości ani wysokości ... więc jeśli użyjemy czegoś, co nie jest do tego przeznaczone ... zacznie w jakiś sposób tworzyć problemy. Mam nadzieję, że teraz mam sens.
Yaxita Shah

2
label {
  width:200px;
  display: inline-block;
}

OR 

label {
  width:200px;
  display: inline-flex;
}

OR 

label {
  width:200px;
  display: inline-table;
}


0

Możesz albo nadać nazwę klasy wszystkim etykietom, aby wszystkie miały tę samą szerokość:

 .class-name {  width:200px;}

Przykład

.labelname{  width:200px;}

lub możesz po prostu podać resztę etykiety

label {  width:200px;  display: inline-block;}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.