在HTML中,无法识别的标签的内容会发生什么?

时间:2011-01-27 19:46:24

标签: html tags

微软有这个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>
  • 那么,识别标签的内容会发生什么?

  • 这种方式是标准化还是仅仅取决于浏览器如何实现?

3 个答案:

答案 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”

的DOM中

作为附带问题,<embed>元素无效,因此</embed>永远不会正确。添加它会导致在IE9之前的IE版本中将名为“/ EMBED”的元素添加到DOM中。