2012-03-07 74 views
0

IE 6-7-8(说不上9)执行该CSS而不相对于所述媒体规则..IE执行小设备排除CSS媒体查询

<link rel="stylesheet" type="text/css" media="only screen and (max-width: 680px), only screen and (max-device-width: 680px)" href="styles/small-device.css" /> 

这一个是确定:

<link rel="stylesheet" type="text/css" media="only screen and (max-width: 680px)" href="styles/small-device.css" /> 

为什么?

在脑子里,我有这样的:

<meta name="viewport" content="width=device-width,initial-scale=1"> 

回答

0

正是由于这种媒体查询是CSS3功能,这是不完全的IE,尤其是IE6(没有支持在所有)的支持。

您应该尝试使用浏览器嗅探进行条件资源加载。 由于IE6,7,8不能用于小型设备,因此您可以将两者结合使用。 IE9在WP7

<!--[if lte IE 8]> 
<style type="text/css" media="screen"/> 

<![endif]--> 
<!--[if !(lte IE 8)]> 
<style type="text/css" media="screen and (min-device-width: 450px)"/> 

<![endif]--> 

http://www.akademy.co.uk/blog/2010/03/css-style-ie6-media-hack/

更新中:我的建议是,它是安全的,安全地使用非小屏幕CSS所有的IE,因为它们无法在小屏幕设备。

如果您想将其用于调整大小的浏览器,那么除非您在CSS中使用jscript(动态属性),否则这在IE中是不可行的。例如:

div { 
    min-height: 300px; 

    /* simulates min-height in IE6 */ 
    _height: expression(document.body.clientHeight < 300 ? "300px" : "auto"); 
} 
+0

Tnaks for your answer。我只是想知道为什么后者的作品和上述不。顺便说一句,我用modernizr,所以如果我使用工作的,它的罚款和功能在IE6-7也。 – zsitro 2012-03-07 09:03:06

+0

IE不应该为它无法识别的媒体应用样式,因此您的回答在这里看起来不合适。 – BoltClock 2012-03-07 09:23:35

+0

好,这是主意!第二种风格将不适用,因为IE不承认它 – venimus 2012-03-14 13:18:00