0

我通常通过 CSS 设置固定的列宽,结果完美无瑕:

#tableID thead tr th:nth-child(1){width: 75px;} 
#tableID thead tr th:nth-child(2){width: 75px;}
/* etc… */

但是现在我处于一种情况,直到运行时我才知道所需的列宽。这是我用来动态设置列宽的代码的摘录:

var tr=$("<tr>");
var colArr=Home.ColDefs[this.statBatchType].colArr;
for(var i=0;i<colArr.length;i++){
    var col=colArr[i];
    tr.append(
        $("<th>")
            .html(col.title)
            .css("width",col.width)
    );
}
this.jqTHead.append(tr);

抱歉,这段代码有点脱离上下文,但底线是我将由<th>元素表示的列添加到表头并设置每个列的宽度。

然而,实际发生的是,Firefox 将列宽视为最小值,然后在用户扩展浏览器窗口时自动扩展列宽。考虑我的 JavaScript 代码将每列的宽度设置为 75px 的情况。Firefox 将确保每列至少有 75px 宽,但如果用户最大化(或放大)他的浏览器,只要有足够的空间,每列都会自动加宽。

这对我来说很奇怪,因为 JavaScript 代码似乎与我在 CSS 中所做的功能等效。然而,CSS 方法不会导致这种奇怪的行为。

有什么想法吗?


DeviceExtendedProperties类,DeviceManufacturerDeviceName属性。

4

2 回答 2

1

table-layout: fixed;on the table 正是这样做的:列永远不会扩展以适应其内容,如果您给表格本身一个宽度,则额外的空间将被平均分配。单元格的内容根本不起作用。

于 2013-01-17T18:54:18.447 回答
1

固定宽度,<table>这将确保表格不会占用可用大小并影响布局。

于 2013-01-17T18:05:41.067 回答