0
<!DOCTYPE html>

    <!--[if lte IE 9]>
    <html class="ie lte9" lang="en">
    <![endif]-->
    <!--[if !IE ]><!-->
    <html lang="en">
    <!--<![endif]-->
    <!--[if gte IE 10]>
    <html class="ie gte10" lang="en">
    <![endif]-->

I know conditional HTML comment is for IE only and Firefox etc do not understand that.

How the above conditional html tag works correctly in Firefox and Chrome when NOT IE is in middle of the alternatives? I see that line (<html lang="en">) highlighted in Firefox and chrome. It means FF and chrome understood those correctly and chosen correct tag for itself!

4

1 回答 1

0

它在 SO 上正确突出显示的事实应该给你一个提示。

条件注释是一段文本,从 xml 的角度来看,它们是普通的注释。也就是说,<!--和之间的所有内容都-->被忽略。

Firefox 和 chrome 遵循这些规则,因此很乐意忽略您的 <html lang="en">部分上方和下方的文本。

IE 有特殊的解析规则,因此如果评论包含 text [if * IE *]>stuff<!<![endif]-->,“stuff”会被解析为 html(即使它严格来说是评论)。反之,夹在包含评论的评论之间的 html 会[if !IE]被忽略,即使严格来说它们不应该如此。

于 2013-11-05T12:39:09.473 回答