0

我正在创建一个移动站点,并且我正在为每种设备尺寸创建不同的样式表,但我也想为每个浏览器创建一个样式表,因为有些样式在所有地方都不兼容。有没有办法创建一个媒体查询来指定浏览器,甚至希望是版本?

愚蠢的例子:

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

谢谢

4

1 回答 1

1

不,那里没有。这通常是浏览器供应商不希望发生的事情(我曾经为其中一个工作过),所以即使有,我怀疑他们会非常犹豫是否要实现它。例如,看看他们如何由于开发人员浏览器嗅探和提供损坏的代码或不提供一些需要的代码而不断更改用户代理字符串。

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

  1. 它将针对实现该查询的该浏览器的所有版本,包括可能没有您正在解决的错误的未来版本
  2. 如果它们也支持该查询,它还将针对使用相同前缀的其他浏览器
  3. 该查询需要申请它才能工作,所以你不能保证它会工作
  4. 即使浏览器仍然存在您正在解决的相同错误,该媒体查询也可以随时删除
  5. 具有前缀的媒体查询通常是非标准的(因为标准的都已在没有前缀的情况下实现,因此您将使用无效代码)

对于 IE,您可以使用Conditional Comments定位单个版本。但是,根据 HTML5 解析规则,条件注释无效。因此,当 IE 迁移到 IE10 中的 HTML5 解析器时,他们放弃了对 HTML5 兼容的支持。因此,您只能使用条件注释来定位小于 10 的 IE 版本。

于 2013-05-30T03:58:23.020 回答