修复了IE8上的表头宽度

时间:2011-12-03 12:28:24

标签: javascript html css

我有一个要求已在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代码。但是我不认为这有问题。

1 个答案:

答案 0 :(得分:0)

根据规格,CSS宽度应该有单位。例如。 cell.style.width = "443"不正确,应为cell.style.width = "443px" 如果您确定要以像素为单位进行测量,则可以使用表格单元格的宽度属性。那是cell.width没有style。 (这些属性是没有单位的数字,就像offsetWidth一样。)

至于为什么它在IE6中工作但在IE8中不工作,这是因为IE8更好地遵守标准。