20

我希望表格具有 100% 的宽度,但其中只有一列应该有自由宽度,例如:

| 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元素在浏览器中显示它(AFAIK 表和带有 display:table 的 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 */
}​

可悲的是一年前我做不到,当时我真的需要它-_-!

于 2012-12-29T18:39:27.327 回答