小编tte*_*ace的帖子

当一个列隐藏在table-layout:fixed的表中时,IE8不会调整tbody或thead的大小

当我用表格布局隐藏表格中的列时,IE 8正在做一些非常奇怪的事情:修复.该列被隐藏,表元素保持相同的宽度,但tbody和thead元素未调整大小以填充剩余的宽度.它适用于IE7模式(当然还有FF,Chrome等).有没有人见过这个或知道一个变通方法?

这是我的测试页面 - 切换第一列并使用开发控制台检查表格,tbody和thead宽度:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>bug</title>
    <style type="text/css">
      table {
        table-layout:fixed; 
        width:100%;
        border-collapse:collapse;
      }
      td, th {
        border:1px solid #000;
      }
    </style>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th id="target1">1</th>
          <th>2</th>
          <th>3</th>
          <th>4</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td id="target2">1</td>
          <td>2</td>
          <td>3</td>
          <td>4</td>
        </tr>
      </tbody>
    </table>
    <a href="#" id="toggle">toggle first column</a>
    <script type="text/javascript">
      function toggleFirstColumn() {
        if (document.getElementById('target1').style.display=='' ||
            document.getElementById('target1').style.display=='table-cell') {
          document.getElementById('target1').style.display='none';
          document.getElementById('target2').style.display='none';
        } else {
          document.getElementById('target1').style.display='table-cell';
          document.getElementById('target2').style.display='table-cell';
        }
      }
      document.getElementById('toggle').onclick = …
Run Code Online (Sandbox Code Playgroud)

javascript html-table toggle internet-explorer-8

8
推荐指数
1
解决办法
4438
查看次数