我正在创建一个移动网站,我正在为每个设备尺寸创建不同的样式表,但我还想为每个浏览器创建一个样式表,因为有些样式在所有地方都不兼容。有没有一种方法可以创建媒体查询来指定浏览器,甚至是版本?
愚蠢的例子:
<link rel="stylesheet" media="screen and (browser:chrome)" href="example.css" />
谢谢
最佳答案
不,没有。这通常是浏览器供应商不希望发生的事情(我曾经为一个公司工作),所以即使有,我怀疑他们会非常犹豫是否实现它。例如,看看由于开发人员浏览器嗅探并提供损坏的代码,或者不提供一些需要的代码,他们如何不断更改用户代理字符串。
从技术上讲,如果浏览器支持带有供应商前缀的媒体查询规则,那么您可以定位该浏览器,但是:
- 它将针对实现该查询的该浏览器的所有版本,包括可能没有您正在解决的错误的 future 版本
- 如果其他浏览器也支持该查询,它还将针对使用相同前缀的其他浏览器
- 该查询需要申请才能工作,因此您不能保证它一定会工作
- 可以随时删除该媒体查询,即使浏览器仍然存在您正在解决的相同错误
- 有前缀的媒体查询通常是非标准的(因为标准的都是在没有前缀的情况下实现的,所以你会使用无效的代码)
对于 IE,您可以使用 Conditional Comments 定位单个版本.但是,根据 HTML5 解析规则,条件注释无效。因此,当 IE 移至 IE10 中的 HTML5 解析器时,他们放弃了对它们的支持以兼容 HTML5。因此,您只能使用条件注释定位 10 以下的 IE 版本。
关于html - 是否可以为每个浏览器创建一个媒体查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16825556/