IE10给我错误1509,无与伦比的结束标记

时间:2013-06-29 20:22:00

标签: html internet-explorer-10

在IE10中,我创建了以下网页,并获得了无法匹配的标记错误:

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
    <p>
        <div>
            &nbsp;
        </div>
    </p>
</body>
</html>

我发现此代码没有问题。我已经缩小了它在一个段落中有一个div作为触发问题的东西。 IE10报道:

  

HTML1509:无与伦比的结束标记。
  test.php,第12行2字符

并指向段落关闭令牌。我早些时候可能会忽略它。但我不能让自己再这样做了。

我搜索过此网站的类似内容,但发现只有合法的语法错误;换句话说,错误的有效解释。我知道IE已经死了脑筋,但即使是Bill后MSFT也不能愚蠢地让这样的bug通过(可以吗?)。所以我假设它是我,直到证明不然。可能是HTML5的一些微妙之处我还没有理解......

1 个答案:

答案 0 :(得分:16)

除非您将标记作为application / xhtml + xml提供,否则不能在P中包含DIV(或任何其他块元素)。所有用作text / html的页面都由HTML解析器解析(在现代浏览器中,包括IE10,它是HTML5解析器,无论doctype如何)。在HTML中,the content model of P element是“短语内容”(HTML5)或“内联”(HTML4),其结束标记在所有HTML版本中都是可选的。因此,解析器在任何块元素的开始标记之前隐式关闭P元素。并且在所有浏览器中,DIV元素将不是P的子元素,而是兄弟和CSS选择器,如p&gt; div将永远不会用作text / html的页面。