【问题标题】:table-layout=fixed and one col without specified width-property sets table width to 100% in IE7table-layout=fixed 并且没有指定宽度属性的一列在 IE7 中将表格宽度设置为 100%
【发布时间】:2012-03-16 05:41:02
【问题描述】:

我希望表格根据其内容以最小宽度呈现,但 IE7 坚持将其扩展为 100% 宽度。

以下小 sn-p 在 Firefox 和 IE8 中可以正常工作,但在 IE7 中不行:

<!DOCTYPE HTML>
<html>
  <head>
    <style type="text/css">
      table { table-layout: fixed  }
      td { padding: 0 10px; border: 1px solid blue;}
    </style>
  </head>
  <body>
<table>
      <tr>
        <td>Column with variable width</td>
        <td style="width: 100px;">Column 2</td>
        <td style="width: 100px;">Column 3</td>
      </tr>
    </table>
  </body>
</html>
  • 我有一张表格,表格布局:固定。
  • 我已指定除第一个单元格以外的所有单元格的宽度。
  • 在第一列中,我希望浏览器根据内容确定宽度
  • 由于我不知道第一列的宽度,我不能(也不想)指定表格的宽度。

现在,IE7 中的问题是表格被渲染为 100% 宽度。所以第一个 col 没有显示其内容所需的最小宽度,而是占用了所有空间以使表格 100% 宽度。

这是我目前发现的:

  • 当我从表格中删除“table-layout:fixed”时,表格不会扩展到 100%。不幸的是,这不是我的选择。
  • 当我将表格宽度设置为非常小的尺寸(例如 10 像素)时,第一个列不会扩展到所需的最小宽度,而是会完全消失。
  • 我试图设置“显示:内联;”对于表格,但这对宽度没有影响。

有什么想法吗?

提前谢谢, 皮特

【问题讨论】:

    标签: html css internet-explorer-7 width tablelayout


    【解决方案1】:

    table-layout: fixed 上的CSS specification

    使用这种(快速)算法,表格的水平布局可以 不依赖于单元格的内容;它只取决于 表格的宽度、列的宽度以及边框或单元格间距。

    因此,您绝对应该尝试通过其他方式实现table-layout: fixed 所需的任何东西。

    【讨论】:

      【解决方案2】:

      如果table-layout: fixed 的唯一目的是固定单元格的宽度,那么您可以在TD 中添加具有所需宽度的DIVs,并为表格去掉table-layout: fixed

      【讨论】:

      • 我想那是必须的。虽然我不喜欢只为 IE7 更改大量源代码的味道。期待我们的客户放弃支持 IE7 的那一天 ;-)
      • 另一种选择是使用 JavaScript 添加特定于 IE7 的样式和元素,同时保持静态代码干净。顺便说一句,尝试通过使用独立的简化样式表来说服客户部分放弃 IE7 支持是有意义的。例如,有现成的stylesheet for IE6。 (虽然我更喜欢使用自己的,但我目前不支持 IE6 和 IE7。)
      猜你喜欢
      • 1970-01-01
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      • 2013-07-22
      • 2012-12-29
      • 2018-10-19
      • 2016-10-08
      • 1970-01-01
      相关资源
      最近更新 更多