IE7标准模式下的CSS属性选择器

时间:2013-07-19 12:39:21

标签: html css html5 internet-explorer-7

总而言之:我需要覆盖display:none!important在某些已显示的元素上:在HTML元素本身内联设置内联。

这需要在IE中使用IE7标准模式设置。

查看我的pastebin链接了解详情:http://pastebin.com/m06YXwHq 结果:http://cdpn.io/sgrjz

这适用于IE9的IE9标准模式(以及所有其他现代浏览器),但不适用于IE7标准模式。

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

老实说,除了修复你的代码以消除导致你走在这条道路上的不良做法之外,我真的看不到在纯CSS中做你想做的事的方法。

正如您可能已经知道的那样,IE7不支持以这种方式使用的属性选择器,因此您在这方面被打破了,唯一可行的解​​决方案是向元素和样式添加一个类(但如果可以的话)那样做,我想你已经做过了。)

除此之外,你正在寻找Javascript解决方案。

您可以尝试使用其中一个polyfill脚本,为旧IE添加对较新CSS功能的支持。 IE9.jsSelectivizr。这两个脚本通常很擅长将CSS选择器的支持添加到旧的IE中,但是你在这里做的是一个真正的边缘情况,如果他们没有应对它,我也不会感到惊讶。一定要试一试,但不要指望奇迹。

考虑到这一点,更加手动的方法可能会更好:如果您正在使用jQuery或类似的库,他们应该能够非常轻松地选择所需的元素,并且您可以从那里开始工作。 (如果你没有使用jQuery或带有内置选择器引擎的库那么你会很费劲,但是如果你支持IE7,那么听到你没有使用jQuery会很惊讶)

但是,由此产生的真实信息是内联样式和CSS !important修饰符是不良做法,并会回过头来咬你。你被咬得很辛苦。

答案 1 :(得分:0)

正如我所说,IE7无法将style-attribute用作CSS选择器。

我设法绕过它,所以我走出了困境。没有任何其他人可以找到使用的解决方案,因为它特别适合我的设置。

感谢所有输入!

/ J