我仔細評估了利用Modernizr和Respond.js進行響應式設計的最佳方法,並針對社區提出了一些問題。Modernizr with Respond.js
首先,我的理解是,將Modernizr與Respond.js捆綁在一起時,在IE8及以下版本中不需要其他編碼或測試來支持媒體查詢。換句話說,當Respond.js與Modernizr捆綁在一起時,我只需在我的源代碼中加載Modernizr即可使Respond.js處於活動狀態。正確?其次,你認爲這是在IE8及以下版本中支持媒體查詢的最有效方式嗎?實質上,我將包含比已經支持媒體查詢的瀏覽器所需更大的Modernizr腳本。如果對媒體查詢的測試失敗,分離這兩個腳本並僅加載Respond.js會不會更高效?
第三,如果我想分開這兩個腳本,您認爲如果需要加載Respond.js最好的方法是什麼?一種選擇是使用IE特定的條件註釋來加載響應。另一種選擇是使用yepnope和Modernizr來測試媒體查詢支持,並在需要時加載Respond。這會更有效和防錯。
最後,如果我選擇分開兩個腳本,並使用Modernizr的如果需要的話我也遇到以下兩種方法來加載迴應:
<script>
yepnope({
test : Modernizr.mq('(only all)'),
nope : ['js/libs/respond.min.js']
});
</script>
OR
<script>Modernizr.mq('(min-width:0)') || document.write('<script src="js/libs/respond.min.js"><\/script>')</script>
我發現,第二次崩潰IE8,但必須只需要重寫。你會推薦哪種技術?
感謝您的幫助。
那裏有很好的問題!回覆:1,我建議用一種方式來解釋一個問題,這就解釋了爲什麼它不只是懶惰地檢查...... Re:2請注意「如果對媒體查詢的測試失敗,只加載Respond.js?」意味着不支持MQ的瀏覽器將支付額外的往返(用於respond.js腳本);同時它爲每個訪問者支持瀏覽器節省1kb(縮小+ gzipped respond.js)。這是一個折衷。 – Nickolay