nop*_*ole 40 html nested paragraph
我通常不会这样筑巢<p>:
<p>The following:
<p>one</p>
<p>two</p>
</p>
Run Code Online (Sandbox Code Playgroud)
我将使用<div>相反的方式嵌套.但是今天我用过<p>但似乎Emacs和谷歌Chrome都会在<p>看到新<p>的开始时就考虑外部关闭.(这DOCTYPE是HTML 4.01严格).
我认为<p>只不过是一个<div>预先定义的边距和填充,但它是否真的<p>不能嵌套?如果是这样,什么规则说它不能?
小智 60
因为段落是一个段落..这就是HTML的定义方式(HTML 不是 XML).
任何<p>(或其他块级元素)将隐式关闭任何打开<p>.
P元素代表一个段落.它不能包含块级元素(包括P本身).
请注意,这就是解析HTML的方式,甚至<div>可以隐式关闭段落!
然而,<span>与display:block;将不关闭了<p>作为<span>是不是一个块级元素.
也就是说,CSS是不相关的,在这个阶段的HTML处理和CSS是不相关的确定,如果一个元素是一个块级元素或不时对DOM /解析器.考虑动态应用CSS或通过尚未加载的样式表应用CSS的情况:应用的CSS不会改变DOM.
虽然HTML5(工作草案)规范不包含HTML4规范中的上述语言,但它确实将段落定义为用于分阶段内容的容器,并且还有一个关于段落的部分.
可以嵌套在P元素中的HTML5元素列表的已接受答案?说<p>元素不能嵌套在HTML5中.文件中的关键短语是:"措词内容的运行[不包括<p>元素]形成段落".此外,HTML5试图在许多方面向后兼容,它具有"对内容模型和属性值的限制"的基本原理:
某些元素以某种古怪的方式进行解析(通常是出于历史原因),其内容模型限制旨在避免将作者暴露给这些问题.
从流内容的HTML5 WG wiki条目引用此行为:
HTML5对p元素嵌套和p元素可能包含的限制是由于引用:"解析器的特性" 导致p自动关闭 ..
Ant*_*ony 11
P元素代表一个段落.它不能包含块级元素(包括P本身).