我仔细评估了利用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