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