2

IE7 正在扫描我的 CSS 中的所有样式,无论它们是否在媒体查询中。我认为 IE7/8 忽略了媒体查询。它并没有忽视它们,它只是通过并抓住所有的风格。很奇怪。

我试图寻找一个解决方案,但我能找到的只是破解它的方法,因此媒体查询实际上可以在 IE7 中工作。

最好的方法是为在 IE7 中不加载的媒体查询创建一个单独的 css 文件吗?

任何帮助,将不胜感激。

4

2 回答 2

0

有 JS 库可以让 IE 支持 CSS3 媒体查询:

https://github.com/scottjehl/Respond

http://code.google.com/p/css3-mediaqueries-js/

于 2013-01-17T07:56:50.467 回答
0

我有同样的问题。IE7 不会忽略媒体查询,所以我想到了两个解决方案,尽管我希望有一个更优雅的解决方案:

1) 将所有查询放在页面顶部,因此最后的默认外观将优先。不幸的是,如果您根据例如屏幕大小来覆盖样式,那么您必须将媒体查询放在底部。

2) 使用特定于 IE 的样式表(在主样式表之后加载)重置 IE7 中的样式。我一直在使用的方法取自 Boilerplate(特别是 Wordpress 中的 Boilerplate 主题:http://wordpress.org/extend/themes/boilerplate

<!--[if lt IE 7 ]><html class="no-js ie ie6 lte7 lte8 lte9"><![endif]-->
<!--[if IE 7 ]><html class="no-js ie ie7 lte7 lte8 lte9"><![endif]-->
<!--[if IE 8 ]><html class="no-js ie ie8 lte8 lte9"><![endif]-->
<!--[if IE 9 ]><html class="no-js ie ie9 lte9"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html class="no-js"><!--<![endif]-->

这使您能够以 IE 浏览器为目标,并且您可以将样式放在它自己的样式表中(这样其他浏览器根本不会加载它)或放在普通样式表的末尾。

html.ie7 div {}

等等。

这两种方法都不是很优雅……这就是我讨厌 Internet Explorer 的原因。(你相信我的网站仍然有来自 IE7 和 IE6 用户的访问吗?对于 IE6 用户来说太糟糕了,但我什至不再为检查他们的兼容性而烦恼了。)

于 2013-05-03T13:38:35.983 回答