在 Internet Explorer 中使用交替的 CSS 表格行样式

Posted

技术标签:

【中文标题】在 Internet Explorer 中使用交替的 CSS 表格行样式【英文标题】:Make alternating CSS table row style work in Internet Explorer 【发布时间】:2011-06-12 03:55:03 【问题描述】:

我使用这个 CSS 代码在行中显示数据库输出,其中颜色在每 2 行重复

tbody tr:nth-child(2n) td, tbody tr.even td   
    background: none repeat scroll 0 0 #E5ECF9;  

如果我在 IE 中打开它,它将无法工作。有什么建议吗?

我使用的是 IE 8。

【问题讨论】:

【参考方案1】:

IE8 不支持:nth-child CSS 属性。您可以使用此脚本使其在 IE8 中运行:

https://github.com/roylory/ie7-js

使用方法:

您可以通过条件 cmets 包含它,例如:

<!--[if lte IE 9]>
<script src="IE9.js"></script>
<![endif]-->

脚本只会在IE9及以下加载,其他浏览器看不到。

现场演示: https://jsbin.com/koyahe/edit?html,css,output

(此演示应适用于所有版本的 IE。)

【讨论】:

这个项目看起来已经死了。有更多最近的参考资料吗? @ChristopherSchultz 您需要支持哪些版本的 IE? 5 年发生了很多变化。 MSIE 8,不幸的是。我实际上还没有尝试过,但我认为 MSIE 8 根本没有改变,而且 :nth-child 仍然是不行的,所以我正在寻找一个后备解决方案。我的产品已经“手动”执行此操作(通过为每个表格行使用交替的 CSS 类),但我希望删除无用的垃圾,如果有一种半优雅的方式来做到这一点,我很感兴趣。 @ChristopherSchultz 只要您可以在某处找到 ie7-js 库,它应该仍然可以像宣传的那样工作。这些天不知道它的正式位置。 对。我正在寻找对当前官方位置的参考。【参考方案2】:

我喜欢上面的答案,但如果不刷新文档,备用行颜色似乎不起作用。

也试试 jQuery:

$("tbody tr:even td").css("background-color", "lightgray");

链接:http://docs.jquery.com/Tutorials:Zebra_Striping_Made_Easy

【讨论】:

【参考方案3】:

您使用的是哪个版本的 IE? :nth-child() CSS 在旧版本的 IE 中不起作用。

IE6, IE7, IE8 Fail

IE9(工作)

【讨论】:

有没有办法在IE8中显示? 如果您使用@Šime Vidas 对 IE7.js 的建议,它将适用于 IE8。

以上是关于在 Internet Explorer 中使用交替的 CSS 表格行样式的主要内容,如果未能解决你的问题,请参考以下文章

html Internet Explorer支持使用条件注释。以下代码段在旧版Internet Explorer中添加了HTML5和CSS3支持

html Internet Explorer支持使用条件注释。以下代码段在旧版Internet Explorer中添加了HTML5和CSS3支持

html Internet Explorer支持使用条件注释。以下代码段在旧版Internet Explorer中添加了HTML5和CSS3支持

html Internet Explorer支持使用条件注释。以下代码段在旧版Internet Explorer中添加了HTML5和CSS3支持

在 webbrowser 控件中使用最新版本的 Internet Explorer

jquery 在 Internet Explorer 中使用多个选择器