【发布时间】:2017-04-13 15:08:14
【问题描述】:
我在嵌套的 <p> 标记周围看到了一些奇怪的行为。测试用例见this。
给定:
<p>
<p>
<p>
<p>
<p>
<p>
</p>
</p>
</p>
</p>
</p>
</p>
在 Chrome 中,这会导致
<p>
</p><p>
</p><p>
</p><p>
</p><p>
</p><p>
</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
也就是说,它关闭开始标签并打开结束标签。我(当然)听说过“自动关闭标签”;我从来没有听说过“自开标签”。
IE11 以不同的方式(可以说,甚至更错误):
<p>
<p>
<p>
<p>
<p>
<p>
</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
所以它不会自动关闭开始标签,但会自动打开关闭标签,导致 DOM 树不平衡。
无论如何,我很好奇解决这个问题的正确途径是什么;我应该在 Chrome 和 IE 错误跟踪器上打开问题吗?我不是特别精通 W3C 规范,我会去哪里尝试找到“正确”的行为(我不知道除了 <p> 之外的任何标签都表现出这种行为,尽管我没有做过广泛的测试)?
不管怎样,我意识到嵌套<p> 标签是无效的;这是我正在与他们一起解决的第三方库的结果,我只是发现这是一种奇怪的行为)。
编辑:我对 IE 的看法是错误的:请参阅 https://jsbin.com/ripaxe/5/edit?html,js,output。原来innerHTML 依赖于浏览器。没想到。
【问题讨论】:
标签: html