以下内容来自Adobe文档。
媒体查询规范还只提供关键字,目的是对旧浏览器隐藏媒体查询。与不一样,关键字必须出现在声明的开头。例如:
media="only screen and (min-width: 401px) and (max-width: 600px)"
不识别媒体查询的浏览器期望一个以逗号分隔的媒体类型列表,规范说它们应该在第一个非字母数字字符(非连字符)之前立即截断每个值。所以,旧的浏览器应该这样解释上面的例子:
media="only"
因为没有only这样的媒体类型,所以样式表将被忽略。类似地,旧的浏览器应该解释
media="screen and (min-width: 401px) and (max-width: 600px)"
as
media="screen"
换句话说,它应该将样式规则应用于所有屏幕设备,即使它不知道媒体查询的含义。
不幸的是,IE 6-8未能正确地实现该规范。
它没有将样式应用到所有屏幕设备,而是完全忽略了样式表。
尽管存在这种行为,但仍然建议仅当您想对其他不太常见的浏览器隐藏样式时,才为媒体查询添加前缀。
因此,使用
media="only screen and (min-width: 401px)"
and
media="screen and (min-width: 401px)"
将在IE6-8中有相同的效果:两者都将阻止这些样式被使用。然而,它们仍然会被下载。
此外,在支持CSS3媒体查询的浏览器中,如果视口宽度大于401px且媒体类型为屏幕,两个版本都将加载样式。
我不完全确定哪些不支持CSS3媒体查询的浏览器需要唯一的版本
media="only screen and (min-width: 401px)"
而不是
media="screen and (min-width: 401px)"
确保它不会被解释为
media="screen"
对于有设备实验室的人来说,这将是一个很好的测试。