Html IE8从tbody中排除列

Html IE8从tbody中排除列,html,css,html-table,internet-explorer-8,tablelayout,Html,Css,Html Table,Internet Explorer 8,Tablelayout,我在页面上显示多个表时遇到问题 表代码非常简单。CSS按%设置每个td的宽度,表格布局是固定的 问题似乎是因为第一个表的列数为X,而第二个表的列数为X+3。这将导致从表体中排除最后一列 在检查DOM时,我可以看到右侧的最后一列存在于表体外部(在设计中),但在代码中存在于表体内部 如果我从css中删除table layout:fixed,表会重叠,但它会将正确的css背景颜色等应用于最后的列。如果我保持表格布局不变,但删除了width:100%属性,也会发生这种情况。因此,从第一个表开始,所有

我在页面上显示多个表时遇到问题

表代码非常简单。CSS按%设置每个td的宽度,
表格布局
固定的

问题似乎是因为第一个表的列数为X,而第二个表的列数为X+3。这将导致从表体中排除最后一列

在检查DOM时,我可以看到右侧的最后一列存在于表体外部(在设计中),但在代码中存在于表体内部

如果我从css中删除
table layout:fixed
,表会重叠,但它会将正确的css背景颜色等应用于最后的列。如果我保持表格布局不变,但删除了width:100%属性,也会发生这种情况。因此,从第一个表开始,所有表都保持固定的表宽,这似乎也是一个问题

我相信这可能与此密切相关

有什么想法吗

<div>
    <table>
        // th elements
        <tbody>
            <tr>
               <td>1</td>
            </td>
        </tbody>
    </table>
</div>
<div>
    <table>
        // th elements
        <tbody>
            <tr>
               <td>1</td>
               <td>2</td>
            </tr>
        </tbody>
    </table>
</div>

//th元素
1.
//th元素
1.
2.

这个问题的解决方案正是我所期望的

事实证明,IE(和其他一些浏览器)将基于第一个表的第一行来创建所有表布局

因此,如果在一个页面上有多个表,其中列的数量不同,那么最终可能会出现这样的情况,即任何额外的列都挂在表的末尾,就像我的一样

有些人建议在
thead
上方使用
colgroup
col
属性,但我发现这对我不起作用

相反,我在我的原始文件上方创建了一个隐藏的
thead
,包含所需的最大列数

    <thead>
        <tr hidden="hidden">
            <th span="1"></th>
            <th span="3"></th>
            <th span="3"></th>
            <th span="3"></th>
            <th span="1"></th>
            <th span="2"></th>
        </tr>
    </thead>
    <thead>
        // My actual table headers
    </thead>

//我的实际表格标题

@chovy此项目适用于一家大型公司。我认为解决我的问题可能比升级所有公司的机器更容易。。。所以人们可以玩…旧的思维方式。现在是常青树。没有别的了。我不在乎IE11是否起作用。与其说是“旧思维方式”,不如说是“国家安全”