2013-02-08 21 views
1

我使用Modernizr.mqhttp://modernizr.com/docs/#mq)在我的JS运行检查,我的印象是,Respond填充工具将使IE 8中Modernizr.mq工作为IE 8不支持媒体查询,但不是这种情况,请参见IE 8这个测试页面:http://goo.gl/ND9sA,将BG应该按照本是橙色:入门Modernizr.mq工作在IE 8

if (Modernizr.mq('screen and (min-width: 650px)')) { 
    $('body').css('background', 'orange'); 
} 

因此,没有回应只对CSS中,而不是指定媒体查询工作JS?我以为Modernizr.mq使用matchMedia回应包括matchMediapolyfill但仍然无法正常工作。

那么你如何得到Modernizr.mq工作IE8或不能?

回答

0

如果您加载polyfills,Modernizr不会更改其测试的值,所以如果浏览器不支持媒体查询,Modernizr.mq()将返回false,并且添加Respondjs填充不会更改该值。

对不起。尽管如此,如果您已经加载了polyfill,那么您已经尽全力支持旧版浏览器(Respondjs支持IE6/7/8),因此您可以实现的功能还不止于此。与Modernizr旗帜。 ,理论上你不需要使用Modernizr测试和polyfill,因为所有浏览器都应该支持该功能。

+0

感谢您的反馈意见。是我**只**使用**响应**为旧的IE浏览器(8及以下)认为它会通过'Modernizr.mq'在我的JS修复媒体查询支持,但这是毫无意义的,就像你说的,所以我回来了以这种方式检查视口宽度:'document.body.clientWidth'。对于我的CSS,我使用了Sass,这样我就可以使用这个伟大的技术来支持旧的IE媒体查询:http://jakearchibald.github.com/sass-ie/。 –