私が達成したいのは、このようなレイアウトです
一部のラベル[]チェックボックス1 []チェックボックス2 []チェックボックス3 []チェックボックス4
[]チェックボックスを表します
これにはどのマークアップとCSSが最適でしょうか?これはテーブルで簡単にできることはわかっています
私はこのマークアップを使用します:
<div id="checkboxes">
<label>some label</label>
<ul>
<li><input type="checkbox"> checkbox 1</li>
<li><input type="checkbox"> checkbox 2</li>
<li><input type="checkbox"> checkbox 3</li>
<li><input type="checkbox"> checkbox 4</li>
</ul>
</div>
そしてこれらのスタイル:
#checkboxes label {
float: left;
}
#checkboxes ul {
margin: 0;
list-style: none;
float: left;
}
テーブルは悪ではありませんが、間違った理由で使用されることが多いです。それらはより大きなhtmlファイル(パフォーマンスと帯域幅に悪い)を作ります。通常、より乱雑なhtml構造(保守性に悪い)を伴います。ただし、表形式のデータは優れています。
この非常にセマンティックなHTML:
<fieldset class="checkboxgroup">
<p>some label</p>
<label><input type="checkbox"> checkbox 1</label>
<label><input type="checkbox"> checkbox 2</label>
<label><input type="checkbox"> checkbox 3</label>
<label><input type="checkbox"> checkbox 4</label>
</fieldset>
そして、このかなり単純なCSS:
.checkboxgroup{
width: 20em;
overflow: auto;
}
.checkboxgroup p{
width: 7em;
text-align: right;
}
.checkboxgroup label{
width: 12em;
float: right;
}
必要に応じて幅を調整します。
これを行う適切な方法は、実際にはHTMLのp
要素をlegend
要素に置き換えることですが、これは、かなり醜いCSSを使用しないと、意図したとおりにスタイルを設定できません。
<div style="float: left;">
some label
</div>
<div style="float: left;">
<input type="checkbox" /> checkbox 1<br />
<input type="checkbox" /> checkbox 2<br />
<input type="checkbox" /> checkbox 3<br />
<input type="checkbox" /> checkbox 4
</div>
私の意見では、それは表よりも一種のリストです(しかし、あなたは全体像をリストしませんでした)。私には定義リストのように見えるので、それを使用します(そうでない場合は、順不同リストの例 Magnar ソリューションに固執し、ラベルを追加します)。
定義リストのバージョン:
<dl id="checkboxes">
<dt>same label or term</dt>
<dd><input type="checkbox" id="chk1" /><label for="chk1">checkbox 1</label></dd>
<dd><input type="checkbox" id="chk2" /><label for="chk2">checkbox 2</label></dd>
<dd><input type="checkbox" id="chk3" /><label for="chk3">checkbox 3</label></dd>
<dd><input type="checkbox" id="chk4" /><label for="chk4">checkbox 4</label></dd>
</dl>