繁体   English   中英

固定表头 <td> IE8上的宽度

[英]Fixed table header <td> width on IE8

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

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

至于为什么它在IE6中有效而在IE8中无效,那是因为IE8更好地遵守了标准。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM