テーブルの幅を100%にしたいのですが、次のように、テーブルの1つの列だけが自由な幅を持つ必要があります。
| A | B | C |
したがって、A列とB列の幅はコンテンツの幅と一致する必要がありますが、Cの幅はテーブルが終了するまで続きます。
OK、AとBの幅をピクセル単位で指定できますが、問題はこれらの列のコンテンツの幅が固定されていないため、固定幅を設定するとコンテンツと完全に一致しないことです:(
PS:実際のテーブルアイテムは使用していませんが、DLリストはdivでラップされています。divにはdisplay:table、dlにはdisplay:table-row、dt/ddの表示があります。テーブルセル...
私が理解している場合は、表形式のデータがありますが、div
要素を使用してブラウザに表示したいです(display:tableのAFAIKテーブルとdivはほとんど同じように動作します)。
(ここに動作するjsfiddleがあります: http://jsfiddle.net/roimergarcia/CWKRA/ )
マークアップ:
<div class='theTable'>
<div class='theRow'>
<div class='theCell' >first</div>
<div class='theCell' >test</div>
<div class='theCell bigCell'>this is long</div>
</div>
<div class='theRow'>
<div class='theCell'>2nd</div>
<div class='theCell'>more test</div>
<div class='theCell'>it is still long</div>
</div>
</div>
そしてCSS:
.theTable{
display:table;
width:95%; /* or whatever width for your table*/
}
.theRow{display:table-row}
.theCell{
display:table-cell;
padding: 0px 2px; /* just some padding, if needed*/
white-space: pre; /* this will avoid line breaks*/
}
.bigCell{
width:100%; /* this will shrink other cells */
}
悲しいのは、本当に必要なときに1年前にこれを行うことができなかったということです-_-!