繁体   English   中英

条件评论从哪里获取信息?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM