![](/img/trans.png)
[英]Why the <content> tag must be defined with a starting and ending tag?
[英]Why some HTML5 tags must have a starting and ending tag instead of self closing them with />?
在HTML5中,即使内容为空,也有标记必须包含起始标记和结束标记:
<script></script> <!-- Right way. -->
<div></div> <!-- Right way. -->
<content></content> <!-- Right way. -->
<script/> <!-- Wrong way. -->
<div/> <!-- Wrong way. -->
<content/> <!-- Wrong way. -->
在XML中,这种差异不存在: <node/>
和<node></node>
是同一个实体。
为什么像script
, div
和content
这样的标签不能简单地定义为: <script/>
, <div/>
和<content/>
?
来自w3c :
自闭标签是一种特殊形式的开始标签,在关闭直角括号之前有一个斜线。 这些表示该元素将立即关闭,并且没有内容。 在允许和使用此语法的情况下,必须省略结束标记。 在HTML中,此语法的使用仅限于void元素和外部元素。 如果它用于其他元素,则将其视为开始标记。 在XHTML中,任何元素都可以使用此语法。 但请注意,它只符合内容模型允许它们为空的元素。
您列出的示例通常包含内容,JavaScript或其他元素,因此具有正确的开始和结束标记将限定这些元素/标记的范围。
仅仅因为它们基本上是其他元素的“容器”。
有些元素没有被用作其他元素的父元素,例如img或base,这个元素可以在没有带尾随/>的结束标记的情况下关闭,但这不是必需的。
这些(空元素)可以用/>
终止
area, base, br, col, embed, hr, img, input, keygen, link, menuitem, meta, param, source, track, wbr
然而它的可选和不相关:
此字符对void元素没有影响
MathML / SVG标记可以使用/>
终止以指示自闭标记。
( HTML5参考 )
在HTML5规范中,一些标签被声明为“自闭”,而一些标签则没有。
script
标记是特殊的。 当浏览器请求javascript文件(在标记的src
属性中给出)时,它将复制script
标记中的javascript文件内容。 如果你自己关闭标签,浏览器就无法复制标签中的任何内容,因此javascript将不会被执行。
几年以来,HTML(尤其是HTML5)试图摆脱XML“边界”。 这就是为什么我们有属性布尔值(如disabled
或checked
)。
<script></script> <!-- Right way. -->
<div></div> <!-- Right way. -->
<content></content> <!-- Right way. -->
在所有这三种情况中,都有无限量的内容可以驻留在标记内。
有类似的东西:
<input type="text" velue="Hello" />
<img src="image.jpg" />
没有更多内容可以添加到这些内容中。 因此,您只需在生成它们的同一点关闭标记即可。
所以,这不是“对错”的问题。 这是标签实际用于什么的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.