表标签不在DOM的P标签内嵌套

Table Tag Not Nesting Inside P Tags In DOM

本文关键字:标签 嵌套 DOM      更新时间:2023-09-26

我一直在玩动态更改innerHTML内容,并注意到一些奇怪的行为与表嵌套在其他元素。

例如,form p/p table/table/p/form没有将表格视为第二个p的innerHTML,而是将表格列为该p标签的兄弟而不是子标签。

我想这是一种众所周知的行为。

我的知识差距是什么?

TIA

你不能把<table>放在<p>里面。来自HTML4规范:

<!ELEMENT P - O (%inline;)* -- paragraph -->
[…]
它不能包含块级元素(包括P本身)。

然后如果你看看%inline;元素是什么,你不会在列表中找到<table>

对于HTML5, <p>可以包含措辞内容:

<

允许内容/strong>

措辞内容

短语内容是字符数据和短语元素短语元素是:

em 小…<米/em>

列表中没有<table>

所以你试图插入无效的HTML,浏览器正在改变<p><table></table></p><p></p><table></table>(即移动表的孩子到兄弟姐妹),以获得有效的HTML。

如果你给了浏览器无效的HTML,浏览器会猜测你的真正意思,并按照它的猜测去做。

这是因为<p><table>都是块级元素。

在表中使用容器元素,如<div>

祝你好运!:)