Comment puis-je contrôler la largeur d'une étiquette d'étiquette?


144

La balise d'étiquette n'a pas la propriété 'width', alors comment dois-je contrôler la largeur d'une balise d'étiquette?


8
L'étiquette est un élément en ligne, il ne peut pas avoir de valeur de largeur; pour ce faire, vous devez mettre display:blockou float:left.
Russell Dias

Réponses:


188

En utilisant CSS, bien sûr ...

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

L' widthattribut est obsolète et CSS doit toujours être utilisé pour contrôler ces types de styles de présentation.


7
Mais cela conduit à une rupture du code, ce qui est probablement ce que l'OP ne veut pas en premier lieu.
Konrad Rudolph

49
@Konrad Alors l'OP peut utiliser floatoudisplay: inline-block
Josh Stodola

2
Ouais, c'est ce que je voulais en venir. :-) C'est l'aspect central ici, puisque c'est la partie difficile. Seul le réglage widthne sera pas très utile.
Konrad Rudolph

@JoshStodola oh shiiiiit ..... inline-block n'a jamais fonctionné pour moi, j'ai essayé float and bham! Je me demande pourquoi le bloc en ligne n'a pas fonctionné pour moi
Dheeraj

@lostchild inline-block n'ignore pas les espaces, c'est peut-être pour cette raison que vous rencontrez des problèmes avec lui.
Alex Podworny

91

L'utilisation du bloc en ligne est préférable car il ne force pas les éléments et / ou contrôles restants à être dessinés dans une nouvelle ligne.

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

29

Les éléments en ligne (tels que SPAN, LABEL, etc.) sont affichés de sorte que leur hauteur et leur largeur soient calculées par le navigateur en fonction de leur contenu. Si vous souhaitez contrôler la hauteur et la largeur, vous devez modifier les blocs de ces éléments.

display: block;rend l'élément affiché sous forme de bloc solide (comme les balises DIV), ce qui signifie qu'il y a un saut de ligne après l'élément (il n'est pas en ligne). Bien que vous puissiez utiliser display: inline-blockpour résoudre le problème du saut de ligne, cette solution ne fonctionne pas dans IE6 car IE6 ne reconnaît pas le bloc en ligne. Si vous souhaitez qu'il soit compatible avec tous les navigateurs, consultez cet article: http://webjazz.blogspot.com/2008/01/getting-inline-block-working-across.html


4

Donner de la largeur à Label n'est pas une bonne manière. vous devriez prendre une structure div ou table pour gérer cela. mais toujours si vous ne voulez pas changer tout votre code, vous pouvez utiliser le code suivant.

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

"Donner de la largeur à Label d'une manière incorrecte" pour contrôler la largeur d'un élément d'étiquette? Êtes-vous sûr?
Oriol

Oui .. Parce que lorsque nous voulons créer une mise en page ou une structure spécifique, les propriétés div et table sont fournies à utiliser. L'étiquette n'est pas destinée à donner la largeur ou la hauteur .. donc si nous utilisons quelque chose qui n'est pas censé le faire .. cela commencera à créer des problèmes d'une manière ou d'une autre. J'espère avoir un sens maintenant.
Yaxita Shah

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

OR 

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

OR 

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

1

Vous pouvez certainement essayer de cette façon

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

0

Vous pouvez soit donner un nom de classe à toutes les étiquettes afin qu'elles aient toutes la même largeur:

 .class-name {  width:200px;}

Exemple

.labelname{  width:200px;}

ou vous pouvez simplement donner le reste de l'étiquette

label {  width:200px;  display: inline-block;}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.