Html 为什么可以';t<;p>;标签包含一个<;部门>;里面有标签吗?
据我所知,这是对的:Html 为什么可以';t<;p>;标签包含一个<;部门>;里面有标签吗?,html,xhtml,Html,Xhtml,据我所知,这是对的: <div> <p>some words</p> </div> 一些词 但这是错误的: <p> <div>some words</div> </p> 一些词 第一个可以通过(XHTML1.0),但第二个不能。我知道没有人会像第二个那样写代码。我只是想知道为什么 那么其他标记的包含关系呢?因为div标记的优先级高于p标记。p标记表示段落标记,而div标记表示文档
<div>
<p>some words</p>
</div>
一些词
但这是错误的:
<p>
<div>some words</div>
</p>
一些词
第一个可以通过(XHTML1.0),但第二个不能。我知道没有人会像第二个那样写代码。我只是想知道为什么
那么其他标记的包含关系呢?因为
div
标记的优先级高于p
标记。p
标记表示段落标记,而div
标记表示文档标记
可以在文档标记中写入许多段落,但不能在段落中写入文档。与文档文件相同。简而言之,不可能在DOM中的
中放置元素,因为打开的
标记将自动关闭元素 查找允许的包含关系的权威位置是HTML规范。例如,请参见。它指定哪些图元是块图元,哪些是内联图元。对于这些列表,请搜索标记为“HTML内容模型”的部分
对于p元素,它指定了以下内容,这表明p元素只允许包含内联元素
<!ELEMENT P - O (%inline;)* -- paragraph -->
这与一致,即p元素“不能包含块级元素(包括p本身)。”在X HTML之后,约定已经改变,现在它是XML和HTML约定的混合体,这就是为什么第二种方法是错误的,W3C验证程序接受符合标准和约定的正确内容。根据HTML5,元素的类型是
文档和应用程序主体中使用的大多数元素都被归类为流内容
这包括元素,这是预期的
因此,div
元素可以包含p
元素
<!ELEMENT P - O (%inline;)* -- paragraph -->
然而,元素的数量是有限的
措辞内容是文档的文本,以及
在段落内级别标记该文本。运行的形式
这不包括元素,这是预期的
因此,p
元素不能包含div
元素
<!ELEMENT P - O (%inline;)* -- paragraph -->
由于当p
元素后面紧跟着div
元素(以及其他元素)时,可以省略元素的数量,因此
<p>
<div>some words</div>
</p>
一些词
被解析为
<p></p>
<div>some words</div>
</p>
一些词
最后一个
是一个错误。因为
是块级元素,并且(应该)用于显示文本,所以它不允许其他块级元素在其中,但是只有像
和
这样的内联元素。JamWaffles:p
是块级元素与它无关div
也是一个,允许其他块。可能的重复:(unflagged):任何合适的答案都会回答如何阅读HTML规范,因此也会回答这个问题。将div的样式声明为inline也不起作用。我有一个习惯,就是避免使用规范,这是我们对此类事情最权威的文档,因为它们读起来并不有趣+1用于实际阅读、理解它们并使用它们回答问题。这对HTML5仍然有效吗?链接的规范特别引用了HTML4,并且@Ajedi32是。HTML5已经重命名了许多术语,但“允许的内容:语法内容”的含义与上面的%inline
位相同。另请参见Oriol的答案。@Stoutie说得对,这就是堆栈溢出存在的原因。实际上,它是除法。否则它将是
:dReceidence不是一个适用于html元素的概念,而div代表一个划分,正如@KyleSevenoaks所说:)什么是文档文件?文件?啊,这解释了为什么p中div之前有一个巨大的空格,因为p实际上在div之前结束。您可以在DOM中的p
中放置div
元素,例如myP.appendChild(myDiv)
。但是HTML解析器做不到,不要这样做。你不知道在未来的浏览器中会有什么反应。技术在不断变化。可能有一个动态html解析器会使它有一天失效。Webdev的目标是创建既符合需要又有一定兼容性的东西。如果你能绕过浏览器所允许的,可以肯定地说,你不能确保它永远工作。就用一个跨度吧,伙计们。。。如果您需要一个div,请停止使用p标记。但是如果在CSS中,如果我将div设置为内联,为什么它不遵守这一点?因为CSS值是在dom解析之后应用的。。。即使我们在CSS中将div设为内联,它也没有用,因为新的解析结构是文本一些单词
我的理解正确吗?@Sanjay是的,看起来你是对的。而且,在我的观察过程中,如果将span的display设置为“block”,它将被呈现为一个典型的block元素,而不会产生这种效果。XHTML没有太大变化。p元素从未被允许包含div元素。