我有一个要求已在IE6上成功实施,并且在IE8中没有按预期工作。描述如下: 一张桌子有一个带有垂直和水平滚动的固定标题。水平滚动是必要的,因为它有很多列,大约20个。在水平滚动时,标题不固定,但在垂直方向上它是固定的。 从技术上讲,这是使用2个表完成的,第一个表充当标题,第二个充当内容。我也在动态计算TD宽度并使用JAVASCRIPT设置宽度。 现在IE8上看不到表格宽度。我发现这是一个CSS问题,虽然我不确定错误的确切位置。期待着这一点。
//Function to set cell width of table containing header and the table containing content in synch.
function setTableColumnWidth(table1, table2) {
for (i = 0; i < 21; i++) {
var tablecell1 = document.getElementById(table1).rows[0].cells[i].offsetWidth;
var tablecell2 = document.getElementById(table2).rows[0].cells[i].offsetWidth;
if (tablecell1 > tablecell2) {
document.getElementById(table2).rows[0].cells[i].style.width = tablecell1;
} else {
document.getElementById(table1).rows[0].cells[i].style.width = tablecell2;
}
if (i == 20) {
var table1col12 = document.getElementById(table1).rows[0].cells[i].offsetWidth;
document.getElementById(table1).rows[0].cells[i].style.width = table1col12 + 20;
}
}
}
function checkTable(table1, table2) {
if (document.getElementById(table1).rows[0] != null
&& document.getElementById(table2).rows[0] != null) {
setTableColumnWidth(table1, table2);
}
}
这是JS代码。但是我不认为这有问题。
答案 0 :(得分:0)
根据规格,CSS宽度应该有单位。例如。 cell.style.width = "443"
不正确,应为cell.style.width = "443px"
如果您确定要以像素为单位进行测量,则可以使用表格单元格的宽度属性。那是cell.width
没有style
。 (这些属性是没有单位的数字,就像offsetWidth一样。)
至于为什么它在IE6中工作但在IE8中不工作,这是因为IE8更好地遵守标准。