在Firefox和Chrome中未正确解析HTML
有了这个HTML片段,在Firefox和Chrome中显示时,它下面的每个元素都包含了最上面的google链接在Firefox和Chrome中未正确解析HTML,html,parsing,xhtml,Html,Parsing,Xhtml,有了这个HTML片段,在Firefox和Chrome中显示时,它下面的每个元素都包含了最上面的google链接 <div> <a href="http://www.google.com/"> <div> <div> <div> <div>
<div>
<a href="http://www.google.com/">
<div>
<div>
<div>
<div>
<a>a tag</a>
</div>
<img />
<h3>a title</h3>
<p>a description</p>
<div>a detail</div>
</div>
</div>
</div>
</a>
</div>
是什么导致了此解析问题以及如何解决此问题?请尝试将以下文档放入:
解析错误?
头衔
描述
阿敏
请注意,此文档不是有效的HTML5。第一个错误:
第13行,第65列:看到一个开始标记,但同一类型的元素已打开
也就是说,a
标记不能包括其他a
标记。根据评论中的说法,Chrome和Firefox的行为与此场景的HTML5规范相匹配。这很奇怪,但是,如果代码无效,就会出现奇怪的结果。锚中不能有div,解析器试图理解您的标记,但做得不好。实际上,在HTML5中,在a
中使用div
是完全合法的。这是任何解析器都不关心的。我很惊讶我这么多年来都没有产生这个错误。谢谢,这对我来说应该是显而易见的。行为是最重要的。自从HTML5以来,浏览器在解析HTML时不能自由地做他们喜欢做的事情,不管输入是什么。
<!DOCTYPE html>
<html>
<head>
<title>Parse error?</title>
</head>
<body>
<div class="g23">
<a href="http://www.google.com/">
<div class="article-bg">
<div class="splash-border-right">
<div class="splash-content-margin">
<div>
<a href="http://www.google.com/">a tag</a>
</div>
<img src="http://www.google.com/image.jpg" />
<h3 class="splash">a title</h3>
<p>a description.</p>
<div class="read-time">a min</div>
</div>
</div>
</div>
</a>
</div>
</body>
</html>