ラベルタグの幅を制御するにはどうすればよいですか?


144

ラベルタグには 'width'プロパティがないので、ラベルタグの幅を制御するにはどうすればよいですか?


8
ラベルはインライン要素であり、幅の値を持つことはできません。これを行うには、display:blockまたはを置く必要がありますfloat:left
ラッセルディアス

回答:


188

もちろん、CSSの使用...

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

このwidth属性は廃止されており、これらの種類の表示スタイルを制御するには常にCSSを使用する必要があります。


7
しかし、それはコードの中断につながります。それはおそらくOP がそもそも望まないことです。
Konrad Rudolph、

49
@Konradその後、OPはfloator を使用できますdisplay: inline-block
Josh Stodola、

2
うん、それは私が到達したかったものです。:-)これは難しい部分なので、ここでの核となる側面です。単なる設定widthはあまり役に立ちません。
コンラートルドルフ

@JoshStodola oh shiiiiit .....インラインブロックは私のために機能することはありませんでした、私はフロートとバムを試しました!インラインブロックがうまくいかなかったのはなぜですか
Dheeraj

@lostchild inline-blockは空白を無視しません。そのため、問題が発生する可能性があります。
Alex Podworny

91

インラインブロックを使用すると、残りの要素やコントロールを強制的に新しい線で描画する必要がないため、より優れています。

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

29

インライン要素(SPAN、LABELなど)が表示され、その高さと幅がブラウザによってコンテンツに基づいて計算されます。高さと幅を制御したい場合は、それらの要素のブロックを変更する必要があります。

display: block;要素を(DIVタグのように)実線のブロックとして表示します。つまり、要素の後に改行があります(インラインではありません)。を使用display: inline-blockして改行の問題を修正できますが、IE6はインラインブロックを認識しないため、このソリューションはIE6では機能しません。ブラウザー間の互換性が必要な場合は、次の記事を参照してください。http//webjazz.blogspot.com/2008/01/getting-inline-block-working-across.html


4

ラベルに幅を与えるのは適切な方法ではありません。これを管理するには、1つのdivまたはテーブル構造を使用する必要があります。ただし、コード全体を変更したくない場合は、次のコードを使用できます。

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

ラベル要素の幅を制御する「適切な方法でラベルに幅を指定しない」?本気ですか?
Oriol 2015

はい..レイアウトや特定の構造を作成する場合は、使用するためにdivおよびtableプロパティが提供されます。ラベルは、幅や高さを与えることを意図したものではありません。したがって、そうすることを意図していないものを使用すると、何らかの方法で問題が発生し始めます。私は今意味を成していると思います。
Yaxita Shah 2015

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

OR 

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

OR 

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


0

すべてのラベルにクラス名を付けて、すべてが同じ幅になるようにすることができます。

 .class-name {  width:200px;}

.labelname{  width:200px;}

または、ラベルの残りを単純に与えることができます

label {  width:200px;  display: inline-block;}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.