0

长话短说:我需要覆盖 display:none!important 在某些元素上 display:inline 在 HTML 元素本身上设置为内联。

这需要在设置了 IE7 标准模式的 IE 中工作。

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

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

任何帮助表示赞赏!

4

2 回答 2

1

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

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

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

您可以尝试其中一种为旧 IE 添加对较新 CSS 功能的支持的 polyfill 脚本。IE9.js或Selectivizr_ 这两个脚本通常非常擅长向旧 IE 添加对 CSS 选择器的支持,但是您在这里所做的是一个真正的边缘情况,如果他们不处理它,我一点也不感到惊讶。一定要试一试,但不要指望奇迹。

鉴于此,更手动的方法可能会更好:如果您使用 jQuery 或类似的库,他们应该能够很容易地选择所需的元素,您可以从那里开始工作。(如果您没有使用 jQuery 或带有内置选择器引擎的库,那么您会遇到困难,但如果您支持 IE7,那么听到您还没有使用 jQuery 会很惊讶)

但由此产生的真正信息是,内联样式和 CSS!important修饰符是不好的做法,并且会回来咬你。你被咬得很厉害。

于 2013-07-19T13:05:07.543 回答
0

正如我所说,IE7 无法使用样式属性作为 CSS 选择器。

我设法解决了它,所以我走出了困境。其他任何人都找不到任何解决方案,因为它是我的设置所特有的。

无论如何,感谢所有输入!

/J

于 2013-07-19T17:03:07.437 回答