【问题标题】:display: table dosen't work in ie6 & ie7 [closed]显示:表格在 ie6 和 ie7 中不起作用 [关闭]
【发布时间】:2012-03-06 14:35:30
【问题描述】:

我创建了一个菜单,但由于display:table,它在 ie6 和 ie7 中不起作用。我如何才能在 ie6 和 ie7 中以display:table 风格工作

这是我的例子

http://jsfiddle.net/amkrtchyan/fCsax/

但在 ie6 和 ie7 中不起作用

【问题讨论】:

标签: jquery html css internet-explorer-7 internet-explorer-6


【解决方案1】:

IE6和IE7不支持显示:表格;

http://www.quirksmode.org/css/display.html

如果它的表格数据,您可以使用真实表格,否则您可以使用列表 (ul) 和带有 *display:inline hack 和 zoom:1 的 inline-block 用于 IE7 及以下版本。

【讨论】:

  • 但需要使用display:table
  • @AramMkrtchyan:IE 6 和 IE 7 不支持display:table。真的就是这么简单。
  • 我知道...我可以为 ie6 和 ie7 尝试替代 css,但是我工作的地方需要使用 display: table
【解决方案2】:

IE7 不支持 display:table,所以你必须以不同的方式重建菜单,或者你可以使用 js 来实现这个

检查这个IE7 and the CSS table-cell property

【讨论】:

    【解决方案3】:

    我看到您正在使用display:table 来实现菜单项的并排布局。

    我认为您可以在 IE 6 和 7 中使用菜单项上的display:inline-block 产生类似的结果:

    您的原始版本和这个版本之间的区别是:

    1. .menu 中删除display:table
    2. overflow: hidden 添加到.menu,使其圆角也能夹住菜单项
    3. .menu ul 中删除display:table-row
    4. display:inline 添加到.menu li
    5. 将填充从.menu li 移动到.menu ul li a
    6. display:inline-block 添加到.menu ul li a

    我快速浏览了 IE 6,我认为它可以正常工作:

    【讨论】:

    • “需要使用 display:table”——我不明白你的意思。我无法想象有一种方法可以让display:table 使用 JavaScript 在 IE 7 和 6 中工作——考虑到表格布局的工作方式,我想它会非常非常复杂且不可靠。我建议您保留您的 display:table code,但使用 conditional comments 为 IE 7 和 6 提供额外的样式表,使用在 IE 中工作的替代 CSS 覆盖您的 display:table 代码。
    【解决方案4】:

    唯一的方法是使用条件 cmets 为 IE6 和 IE7 使用表:

    <!--[if lte IE 7]> special markup for IE6 and IE7 <![endif]-->
    

    因此,请正确添加 table、tr 和 td 标签,仅适用于菜单元素中的 IE。

    另一种解决方案是使用:display:inline-block;

    【讨论】:

      【解决方案5】:

      我认为 IE6 不支持您使用的 CSS 版本。 使用与 IE6 兼容的 CSS。

      【讨论】:

      • 我知道 :D 我可以尝试 ie6 ie7 ie8 ie9 的替代 css 我可以这样做,但需要使用 display:table
      • ie6 不兼容任何 css 版本。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-06
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      相关资源
      最近更新 更多