2012-03-07 71 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