2013-02-04 15 views
9

私は現在、多くのチェックボックスを備えた大きな形式で作業しています。 グリッドのように表示する方法はありますか? 4列?複数のチェックボックスをグリッドのように配置します。テーブルなし?

私はテーブルでこれを行うことができますが、本当に必要でない場合は、実際にスタイルを使用する必要はありません。それでは、CSSのやり方はありますか?

例:
[]テキスト[]テキスト[]テキスト[]テキスト
[]テキスト[]テキスト[]テキスト[]テキスト
...

答えて

29

は、完全なチェックボックスのマークアップとCSSで、ソリューションであり、かつ実例

HTML

<ul class="checkbox-grid"> 
    <li><input type="checkbox" name="text1" value="value1" /><label for="text1">Text 1</label></li> 
    <li><input type="checkbox" name="text2" value="value2" /><label for="text2">Text 2</label></li> 
    <li><input type="checkbox" name="text3" value="value3" /><label for="text3">Text 3</label></li> 
    <li><input type="checkbox" name="text4" value="value4" /><label for="text4">Text 4</label></li> 
    <li><input type="checkbox" name="text5" value="value5" /><label for="text5">Text 5</label></li> 
    <li><input type="checkbox" name="text6" value="value6" /><label for="text6">Text 6</label></li> 
    <li><input type="checkbox" name="text7" value="value7" /><label for="text7">Text 7</label></li> 
    <li><input type="checkbox" name="text8" value="value8" /><label for="text8">Text 8</label></li> 
</ul> 

CSS

.checkbox-grid li { 
    display: block; 
    float: left; 
    width: 25%; 
} 

チェックアウトここで働い例:http://jsfiddle.net/FmV9k/

+0

フローティング時に表示をブロックに変更する必要はありません。フローティングは要素の表示プロパティを自動的に変更するためです。 – cimmanon

+1

これは本当かもしれませんが、私は要素がブロックに正しく設定されていることを保証したいと思います。 IEのための私の開発経験を考えると、これらのことについては具体的にする方が良いでしょう。 – Axel

+0

これは機能しています!あなたのすべてにthx :) – h3ader

-1

あなたは、チェックボックスをフロートして与えることができます親コンテナの幅はそれぞれ25%です。

+0

あなたが最初にそれらをラップするべきではありませんか? – Vogel612

3

は、あなたは確かにそうするのdivのを使用して、このようなことができ

<div> 
<ul class="chk"> 
<li>checkbox</li> 
<li>checkbox</li> 
<li>checkbox</li> 
<li>checkbox</li> 

<li>checkbox</li> 
<li>checkbox</li> 
<li>checkbox</li> 
<li>checkbox</li> 

</ul> 
</div> 


.chk 
{ 
    width:100%; 
} 
.chk li 
{ 
    display:inline-block; 
    width:25%; 
} 
1

UL李を試してみてください、しかしテーブルを恐れてはいけません。彼らは適切なアプリケーションを持っていますし、あなたがそれらを使用してワラントをしようとしている場合はそれらを使用する必要があります。ここで

はdiv要素に基づくCSSのソリューションです:http://jsfiddle.net/XugFX/

HTML

<div class="row"> 
    <div class="col"><input type="checkbox" /><label>Box 1</label></div> 
    <div class="col"><input type="checkbox" /><label>Box 2</label></div> 
    <div class="col"><input type="checkbox" /><label>Box 3</label></div> 
    <div class="col"><input type="checkbox" /><label>Box 4</label></div> 
</div> 
<div class="row"> 
    <div class="col"><input type="checkbox" /><label>Box 5</label></div> 
    <div class="col"><input type="checkbox" /><label>Box 6</label></div> 
    <div class="col"><input type="checkbox" /><label>Box 7</label></div> 
    <div class="col"><input type="checkbox" /><label>Box 8</label></div> 
</div> 

CSSここで

.row { 
    border: 1px solid red; 
    overflow: hidden; 
    padding: 5px; 
} 

.col { 
    border: 1px solid blue; 
    float: left; 
    padding: 5px; 
    margin-right: 5px; 
} 
+1

表は、表形式のデータ用であり、コンテンツ構造化用ではありません。したがって、この要求にテーブルを使用することは、意味的に意味をなさないでしょう。 – Axel

3

することができますので、列のプロパティは、このタスクの罰金の選択をしますそれは非常に簡単に応答します。

http://jsfiddle.net/FmV9k/1/(含まれていない接頭辞)

.checkboxes { 
    columns: 4 8em; 
} 


<ul class="checkboxes"> 
    <li><label><input type="checkbox" name="text1" value="value1" />Text 1</label></li> 
    <li><label><input type="checkbox" name="text2" value="value2" />Text 2</label></li> 
    <li><label><input type="checkbox" name="text3" value="value3" />Text 3</label></li> 
    <li><label><input type="checkbox" name="text4" value="value4" />Text 4</label></li> 
    <li><label><input type="checkbox" name="text5" value="value5" />Text 5</label></li> 
    <li><label><input type="checkbox" name="text6" value="value6" />Text 6</label></li> 
    <li><label><input type="checkbox" name="text7" value="value7" />Text 7</label></li> 
    <li><label><input type="checkbox" name="text8" value="value8" />Text 8</label></li> 
</ul> 

我々は4列を指定したが、彼らは広い8emの最小値でなければなりません。 4列すべてに十分な余裕がない場合は、最小幅が確実に満たされるように必要に応じて列を削除します。 http://jsfiddle.net/7gdgQ/1/(がコメント化されている)

と幸運:

+0

IEではCSS3列はサポートされていません。 http://msdn.microsoft.com/en-us/library/cc351024%28v=vs.85%29.aspx#multicolumn – Axel

+0

理論上、はい、しかし[このスタイルの現在の可用性](http:// caniuse.com/multicolumn)。 – bishop

+0

この方法は、アイテムを左から右にスネークさせ、上から下にスネークさせたくない場合に適しています。これはアイテムを上から下に配置し、次に左から右に配置します。 – jaredbaszler

3

は "float:left;display:table-cell" と疑似クラス ":nth-child" と、このうち "float:none"

チェックをお試しください!

関連する問題