长话短说:我需要覆盖 display:none!important 在某些元素上 display:inline 在 HTML 元素本身上设置为内联。
这需要在设置了 IE7 标准模式的 IE 中工作。
查看我的 pastebin 链接了解详细信息:http: //pastebin.com/m06YXwHq 结果:http ://cdpn.io/sgrjz
这适用于具有 IE9 标准模式的 IE9(以及所有其他现代浏览器),但不适用于 IE7 标准模式。
任何帮助表示赞赏!
长话短说:我需要覆盖 display:none!important 在某些元素上 display:inline 在 HTML 元素本身上设置为内联。
这需要在设置了 IE7 标准模式的 IE 中工作。
查看我的 pastebin 链接了解详细信息:http: //pastebin.com/m06YXwHq 结果:http ://cdpn.io/sgrjz
这适用于具有 IE9 标准模式的 IE9(以及所有其他现代浏览器),但不适用于 IE7 标准模式。
任何帮助表示赞赏!
老实说,我看不到在纯 CSS 中做你想做的事情的方法,除了修复你的代码以消除首先导致你走上这条道路的大量不良做法。
正如您可能已经知道的那样,IE7 不支持以这种方式使用的属性选择器,因此您在这方面陷入困境,唯一其他可行的解决方案是向元素和样式添加一个类(但如果您可以这样做,我想你已经做到了)。
除此之外,您正在寻找 Javascript 解决方案。
您可以尝试其中一种为旧 IE 添加对较新 CSS 功能的支持的 polyfill 脚本。IE9.js或Selectivizr。_ 这两个脚本通常非常擅长向旧 IE 添加对 CSS 选择器的支持,但是您在这里所做的是一个真正的边缘情况,如果他们不处理它,我一点也不感到惊讶。一定要试一试,但不要指望奇迹。
鉴于此,更手动的方法可能会更好:如果您使用 jQuery 或类似的库,他们应该能够很容易地选择所需的元素,您可以从那里开始工作。(如果您没有使用 jQuery 或带有内置选择器引擎的库,那么您会遇到困难,但如果您支持 IE7,那么听到您还没有使用 jQuery 会很惊讶)
但由此产生的真正信息是,内联样式和 CSS!important
修饰符是不好的做法,并且会回来咬你。你被咬得很厉害。
正如我所说,IE7 无法使用样式属性作为 CSS 选择器。
我设法解决了它,所以我走出了困境。其他任何人都找不到任何解决方案,因为它是我的设置所特有的。
无论如何,感谢所有输入!
/J