我通常通过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方法并不会导致这种奇怪的行为。
有什么想法吗?
发布于 2013-01-18 02:05:41
修复<table>的宽度这将确保表格不会采用可用的大小和凹凸的布局。
发布于 2013-01-18 02:54:18
表上的table-layout: fixed;就是这样做的:列永远不会扩展以适应它们的内容,如果您给表本身一个宽度,那么额外的空间就会平均分配。单元格的内容根本不起作用。
https://stackoverflow.com/questions/14385256
复制相似问题