要素を横並びで配置するには、CSS のfloat や display:inline-blockを使う方法がありますが、ここではtable-cellを使った方法を紹介します。このプロパティーを使うことでtable要素のスタイルを適用できます。
また通常親要素にdisplay:tableが指定された場合、子要素にdisplay:table-cellを使用します。 これで子要素もth/tdのスタイルが適用できます。
[CSS] tableコラム
#table { width:100%; display:table; } #side_a,#center,#side_b{ display: table-cell; text-align:center; } #side_a { width: 100px; background-color:#FFCC66; vertical-align:top; } #center { width: 100%; background-color: #CC6633; vertical-align: middle; } #side_b { width: 80px; background-color: #FF9966; vertical-align: bottom; }
上記のように、親要素tableに「display: table;」を指定、子要素3つに「display: table-cell;」を指定します。
またcenterは「vertical-align: middle;とtext-align:center;で上下中央寄せにしました。またside_bボックスのように「padding:20px;」を指定していますが、borderやpaddingを使っても親要素のボックスからはみ出ないので、box-sizingを使わなくても気軽に設定できます。
スポンサーリンク
テーブルの列幅を固定レイアウトにしますが、これは幅が指定されていない列は幅が均等に割り当てられます。
行の高さは自動的に算出されます。以下のように横幅が指定されてない3つの列の幅が均等に配置されています。
[CSS] table-layout:fixed;
#table { width:100%; display:table; table-layout:fixed; } #table-row{ display:table-row; } #side_a,#center,#side_b{ display: table-cell; }
これはtr要素のスタイルとして使われます。これを使って複数のテーブル段組みの作成ができます。
[CSS] display:table-row;
#table { width:100%; display:table; table-layout:fixed; } #table-row{ display:table-row; } #side_a,#side_b,#side_c,#side_d,#side_e,#side_f{ display: table-cell; }
[HTML]
<div id="table"> <div id="table-row"> <div id="sidetable1_a">side_a</div> <div id="sidetable1_b">center1</div> <div id="sidetable1_c">side_b</div> </div> <div id="table-row"> <div id="sidetable1_d">side_d</div> <div id="sidetable1_e">center2</div> <div id="sidetable1_f">side_f</div> </div> </div>
「display:table-cell」を使った場合は、セル同士の間隔をmarginで指定しても効きません。これは td要素にmargin指定はできないからです。隙間を空ける方法としては、通常table要素でも使われている「border-collapse: separate;」と「border-spacing」を使えば解決できます。
[CSS] border-collapse:separate;
#table { width:100%; display:table; table-layout:fixed; border-collapse:separate; border-spacing: 10px; } #cell1,#cell2,#cell3{ display:table-cell; vertical-align:middle; text-align:center; border:1px solid #666; border-radius:5px; -webkit-border-radius:5px; }
スポンサーリンク
スポンサーリンク
Category
BILLION WALLET Copyright©All rights reserved