2014-09-10 43 views
0

如果我有兩個樣式與媒體查詢設置:如何找出哪些樣式表已應用(通過javascript檢查)?

<link rel='stylesheet' media='only screen and (min-width: 64.1em)' href='desktop.css' /> 
<link rel='stylesheet' media='only screen and (max-width: 64em)' href='mobile.css' /> 

我期待在document.styleSheets一類,我會怎麼能夠忽略非有效樣式?

例如:

//Pseudo-code 
for (var i = 0; i < document.styelSheets.length; i++) if (document.styelSheets[ i ].isApplied) ... 

有沒有辦法知道嗎?

+0

那麼,爲什麼不只是在JS中獲得窗口大小? – Cohars 2014-09-10 21:19:48

+0

沒有確切的方法來說明。從技術上講,它們都將被應用。最簡單的事情就是比較一個靜態的css值,你知道這個值將會出現在一個媒體或另一個媒體上(例如寬度)。 – Bic 2014-09-10 21:19:51

+0

沒有確切的方法來說明。從技術上講,它們都將被應用。最簡單的事情就是比較一個靜態的css值,你知道這個值將會出現在一個媒體或另一個媒體上(例如寬度)。 – Bic 2014-09-10 21:20:03

回答

0

有一個稱爲window.matchMedia()一個不錯的js的功能,可用於測試是否某個媒體查詢匹配到視,例如:

if(window.matchMedia('only screen and (min-width: 64.1em)').matches) { 
    //match 
} 
else { 
    //don't match 
} 

如果你能在所有的鏈接標籤迭代,你可以測試每個media屬性並檢查它是否應用。

MDN .matchMedia() docs

+0

需要IE10或更高版本。我需要IE8 + – 2014-09-10 22:50:46

相關問題