20

テーブルの幅を100%にしたいのですが、次のように、テーブルの1つの列だけに空き幅を設定する必要があります。

| A | B | C                                                                  |

したがって、A列とB列の幅はそれらの内容の幅と一致する必要がありますが、Cの幅はテーブルが終了するまで続く必要があります。

AとBの幅をピクセル単位で指定することもできますが、問題は、これらの列の内容の幅が固定されていないため、固定幅を設定すると、内容と完全に一致しないことです:(

PS:私は実際のテーブルアイテムを使用していませんが、divでラップされたDLリストを使用しています。divにはdisplay:table、dlにはdisplay:table-row、dt / dd display:table-cell..があります。

4

1 に答える 1

27

私があなたを理解しているなら、あなたは表形式のデータを持っていますが、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年前にこれを行うことができなかったことです-_-!

于 2012-12-29T18:39:27.327 に答える