是否可以为每个浏览器创建媒体查询?

时间:2013-05-29 23:25:53

标签: html5 css3 mobile media-queries

我正在创建一个移动网站,我正在为每个设备大小创建不同的样式表,但我还想为每个浏览器创建一个样式表,因为有些样式在任何地方都不兼容。有没有办法创建媒体查询来指定浏览器,甚至有希望版本?

愚蠢的例子:

<link rel="stylesheet" media="screen and (browser:chrome)" href="example.css" />

由于

1 个答案:

答案 0 :(得分:1)

不,没有。这通常是浏览器供应商不希望发生的事情(我曾经为一个工作),所以即使有,我怀疑他们对实施它非常犹豫。例如,查看他们如何不断更改用户代理字符串,因为开发人员浏览器嗅探并提供损坏的代码,或者没有提供所需的代码。

从技术上讲,如果浏览器支持带有供应商前缀的媒体查询规则,那么您可以定位该浏览器,但是:

  1. 它将针对实现该查询的浏览器的所有版本,包括可能没有您正在解决的错误的未来版本
  2. 如果它们也支持该查询
  3. ,它也会定位使用相同前缀的其他浏览器
  4. 该查询需要申请才能使用,因此无法保证其可以正常工作
  5. 即使浏览器仍然存在您正在使用的相同错误,也可以随时删除媒体查询
  6. 具有前缀的媒体查询通常是非标准的(因为标准的媒体查询都是在没有前缀的情况下实现的,因此您将使用无效代码)
  7. 对于IE,您可以使用Conditional Comments定位各个版本。但是,条件注释对于HTML5解析规则无效。因此,当IE移动到IE10中的HTML5解析器时,他们拒绝支持它们符合HTML5。因此,您只能使用条件注释来定位小于10的IE版本。