微软有这个quote:
<![if lt IE 8]>
<p>Please upgrade to Internet Explorer version 8.</p>
<![endif]>
比较此类评论时 基本的HTML评论,请注意 没有连字符(“ - ”) 在开幕后立即“” 评论栏;因此, 注释分隔符被视为 无法识别的HTML。因为浏览器 不承认 下层揭示有条件的 评论,它没有任何用处。
还有众所周知的HTML5-Video Fallback解决方案。
<video ...>
<!-- If the browser doesn't understand the <video> element, reference a Flash file.-->
<embed ...></embed>
</video>
那么,识别标签的内容会发生什么?
这种方式是标准化还是仅仅取决于浏览器如何实现?
答案 0 :(得分:1)
这只是一个IE浏览器。其他浏览器会识别<![if lt IE 8]>
而另一个浏览器会将其识别为标记,因此请忽略它们。他们不会忽略它们之间的内容,所以除了IE 8之外的所有浏览器都会显示段落,所以我建议不要使用这种格式。相反,努力使您的页面优雅地降级。
答案 1 :(得分:1)
浏览器忽略他们不理解的标签。
<![if lt IE 8]>
是 IE条件评论。它只能被IE识别,并且允许您只对某些IE版本显示部分页面。
在这种情况下,仅由低于8的IE版本解释(IE6,IE7,...,但不是IE8,IE9,...)
答案 2 :(得分:0)
它在HTML5中标准化。
有两种不同的情况。对于<![if lt IE 8]>
,这在非IE浏览器中作为“虚假评论”处理,并导致将评论节点添加到DOM。对于IE的作用,请参阅Axel Fontaine的回答。
对于IE以外的<video ...>
浏览器(版本8或更早版本),将在DOM中创建一个名为“video”的元素,它的内容将是“video”元素的子元素。 IE,如果使用HTML5 shiv,也会做同样的事情。
对于IE9之前的IE,没有HTML5 shiv,<video ...>
标记将导致创建一个名为“VIDEO”的元素。它会是空的。嵌入和任何其他内容将是它的兄弟姐妹。然后</video>
标记将导致另一个元素添加到名为“/ VIDEO”
作为附带问题,<embed>
元素无效,因此</embed>
永远不会正确。添加它会导致在IE9之前的IE版本中将名为“/ EMBED”的元素添加到DOM中。