2012-01-18 12 views
1

我試圖只是平坦我的響應式網頁設計和CSS3媒體查詢所有低於8的IE瀏覽器,只是有固定的,鎖定的佈局。爲IE 8提供無效響應式網頁設計/媒體查詢的好方法 - ?

我試過了,在我的css中插入'if IE 8+ conditionals'來繞過我的媒體查詢,並且被忽略。除了調用新的獨立樣式表之外,任何人都有簡單的具體方法嗎?

+0

參見:http://stackoverflow.com/questions/5769493/ie8-support-for-css-media-query – 2012-01-18 17:28:18

+0

呀。我知道每個IE調用單獨的樣式表可能是最好的方法,只是想知道是否還有其他東西。編寫諸如「all @ media void」之類的東西是很整潔的。 – 2012-01-19 16:19:58

回答

0

我會建議結合更多的CSS與媒體查詢中的規則來關閉IE8及以下。例如(其中類「nevergonnahappen」沒有任何東西使用)

@media only screen and (min-device-width: 320px) and (max-device-width: 480px) { 

    .example:not(.nevergonnahappen) { 
     color: red; 
    } 
} 

IE8及以下將忽略媒體查詢和執行代碼,但由於IE8及以下不支持「:不是」規則不會匹配任何內容,因此不會執行。現代瀏覽器會理解「:不」,但由於實際上沒有一類「nevergonnahappen」,因此不排除任何內容。

如果您使用的是Modernizr,則可以使用功能檢測類來排除IE8而不是非sudoclass。

.touch .example {...} 

代替

.example:not(.nevergonnahappen) {...} 

其中 「.touch」 級被置於觸摸屏設備。之後你發現

+0

實際上,僅僅使用@media屏幕開始媒體查詢(強調* only *)足以讓IE8一起跳過它。 JFYI – hexalys 2014-02-01 08:42:44

0

下面是黑客貼出你的問題,針對特定的IE版本作爲後備:http://blog.keithclark.co.uk/moving-ie-specific-css-into-media-blocks/

這裏某種程度上,顯然篩選IE6/7這樣,與IE8忽略警告:

@media screen and (min-width:640px), screen/9 { 
    body { 
     background: green; 
    } 
} 

「這讓所有非IE瀏覽器顯示的風格,並保持媒體IE9/10 查詢支持,這也爲 IE6/7創建一個直通濾波器,但我們還是堅持了IE8忽略整個blob CK」。 http://blog.keithclark.co.uk/moving-ie-specific-css-into-media-blocks/#comment-3393基思·克拉克