[英]Where do conditional comments get their info from?
例:
<!--[if IE 6]>You suck!<![endif]-->
它是否从用户代理获取其信息?
这些被称为conditional comments
,并且仅由IE支持,因此简而言之,它们是IE的一个特征。
有关更详细的说明,请参阅http://www.quirksmode.org/css/condcom.html 。
要回答你的问题是,它需要来自用户代理的信息,但我将只在IE中工作,当你用chrome或ff更改用户代理时,它将无法工作。
从ie6看到这张图片来自我的Windows NT(虚拟PC):
我在这张图片中从ie6更改了用户代理,你可以看到:
Internet Explorer自己的渲染引擎/解析器在所有HTML注释中查找这些条件,因为它从标记构建DOM。 所以他们可以去任何地方,并按照他们出现的顺序进行解释。
这仅适用于Internet Explorer 。 这将不会从任何其他浏览器中读取,并将被视为评论 (这就是为什么它看起来完全像评论)。 它不是CSS而是HTML注释,其中IE知道版本是否匹配以执行内部操作 - 加载css或其他内容。
它仅是IE特定(和其他MS产品)功能。
添加:Outlook也在HTML电子邮件中使用此类子句: <!–[if gte vml 1]>
根据MSDN,IE条件注释使用版本向量来获取运行浏览器的IE和Windows版本。 Firefox和所有不同的浏览器基本上都会跳过这些注释,因为它们位于HTML注释中。 但是,由于IE应该读取它们,它基本上不会跳过那些特定的。
我认为你反过来了: 浏览器本身渲染CSS当且仅当浏览器可以解析指令时(在这种情况下, [if IE]
指令)它不是服务器提供动态CSS取决于用户代理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.