你把不需要结束标签的标签叫做啥?
Posted
技术标签:
【中文标题】你把不需要结束标签的标签叫做啥?【英文标题】:What do you call tags that need no ending tag?你把不需要结束标签的标签叫做什么? 【发布时间】:2011-04-14 02:27:57 【问题描述】:有些 html 标记,例如 <img />
、<input />
和 <button />
,不需要结束标记(</img>
、</input>
和 </button>
)。描述此类标签的术语是什么?
【问题讨论】:
、 或 都不是 HTML 标签。它们是 XHTML 标签。 HTML 标记在结束 > 之前永远不会有 /。 从不。 @Tom Anderson:更糟糕的是:根据上下文,这个 is 实际上是有效的 HTML 语法,但这并不意味着人们通常认为它的意思。 在 HTML 中,它被视为另一个名为“/”的属性,因此在 XHTML 中需要空格的原因是出于兼容性原因。在 XML 中,结束正斜杠之前不需要有空格。 @汤姆安德森。是的——在 HTML5 中,'/' 是可选的,但对 void 元素有效。 img 和 input 是无效的,所以 '/' 在那里有效。 button 不是 void 元素,因此它无效。此外,在 svg 和 mathml 元素上,“/”会导致元素像 XML 一样自动关闭。见dev.w3.org/html5/spec/syntax.html#start-tags @Tom Anderson:是的,但是有很多基于 SGML 的 HTML 验证器,这可能会导致浪费很多时间盯着标记、盯着 Firebug 和盯着验证器消息,并想知道 WTF 是否存在对同一份文件的三种完全不同的解释:-) 【参考方案1】:此语法有多种名称,具体取决于您使用的语言。找出它的名称的最佳方法是查看特定语言的规范。
HTML 4.x
我在 HTML 4.x 规范中找不到任何提及此语法的内容。语法无效。
HTML 5
在 HTML 5 规范中,/
字符(称为 SOLIDUS)有效,但对 void elements 无效,例如 <br />
、<hr />
、<img />
、<input />
等foreign elements(例如 SVG 标签)它指定 一个标记为自关闭的开始标签。它不是所有其他标签的有效语法(例如您的问题中提到的<button />
)。
那么,如果该元素是空元素之一,或者如果该元素是外来元素,则可能存在单个 U+002F SOLIDUS 字符 (/)。该字符对 void 元素没有影响,但对外来元素它将开始标记标记为自闭合。
XML
根据XML specification,它被称为空元素标签:
一个空元素的表示是一个开始标签紧跟一个结束标签,或者一个空元素标签。
XHTML
根据XHTML specification,它被称为空元素的最小化标签语法:
C.2。空元素
在空元素的尾随 / 和 > 之前包含一个空格,例如、
和 。此外,对空元素使用 最小化标记语法,例如,作为 XML 允许的替代语法 ,在许多现有用户代理中会产生不确定的结果。C.3。元素最小化和空元素内容
给定一个内容模型不是 EMPTY 的元素的空实例(例如,空标题或段落)不要使用 最小化形式(例如使用
和不是)。
一般而言,如果您想要准确,我建议您使用相应标准中定义的名称。然后,如果人们不确定您的意思,他们可以在标准中查找以找出答案。但是,如果您不想在标准中使用该名称,您可以随意将其命名为其他名称。重要的是与你交流的人能够理解你。如果您在 XML 文档中使用“自闭合标签”一词来表示标签,我认为没有人会误解您,即使标准正式将其称为其他名称。
感谢 Alohci 提供 HTML 5 参考。
【讨论】:
这无疑是正确的答案,但重要的是,在实践中,我认识的几乎每个人都称它们为“自动关闭”标签。【参考方案2】:这个词是自动关闭的。
【讨论】:
也许你知道这一点,自闭标签和空元素(如)有什么区别?看到这个维基 (en.wikipedia.org/wiki/HTML_element) 听起来不错。还有一件事。需要结束标签的标签的术语是什么?常规标签? @Tim 自闭标签和“空元素”是一回事。 @Emanuil - 我想我会称它为开始标签或通过它的名称来引用它,即锚标签或跨度标签。正如@Mark Byers 建议的那样,重要的是人们理解你在说什么。我认为打开/关闭标签和自关闭标签被广泛使用。在谈话中我不喜欢迂腐,但你真的应该确保你的标记对于你使用的任何文档类型都是合法的。我通常写 XHTML 是为了它的价值。【参考方案3】:HTML 标签可以有两种类型。他们是
配对标签
未配对的标签
配对标签:
如果文本放置在标签与其伴随标签之间,则称该标签为成对标签。在成对标签中,第一个标签称为开始标签,第二个标签称为结束标签。
示例:
<i>
此文字为斜体。 </i>
注意:这里<i>
被称为开始标签。而</i>
称为结束标记。
未配对的标签:
未配对的标签没有伴随标签。不成对的标签也称为单标签或独立标签。
例如:<br> , <hr>
等。这些标签不需要任何伴随标签。
【讨论】:
【参考方案4】:我一直称它们为单例标签!
【讨论】:
【参考方案5】:这就是自闭标签
【讨论】:
【参考方案6】:我知道它们是单身汉标签。 例如这里:http://moodle.cs.huji.ac.il/cs09/file.php/67782/xml-intro.pdf(第 30 页)
【讨论】:
【参考方案7】:我称它们为自闭合、单标签和单标签,但我不知道为什么我没有采用单一术语。
【讨论】:
【参考方案8】:这种元素是一个空元素(因为它不包含任何东西,它只是可能有属性)。根据规范,这是正确的方法,AFAIK。 (如果 Element 不为空,则 Element 由开始标签、结束标签和中间的内容组成。)
这些标签也称为“未配对”、“单身”或“单身标签”。我不喜欢“自动关闭”这个词,因为它们不会像其他标签那样关闭自己,仍然是您或您的程序将“/>”放在那里。
【讨论】:
【参考方案9】:这些标签称为“独立标签”。独立标签在 HTML 中没有结束标签
但在 XHTML 中,它们必须通过在右尖括号前添加正斜杠来自闭合
【讨论】:
【参考方案10】:可选的结束标签,如p
、li
等
还值得一提的是,除了问题中提到的标签之外,其他几个标签不需要结束标签:它们只是在标准中指定的内容出现时自动关闭。
例如:
<body>
<p>abc
<p>def
</body>
相当于:
<body>
<p>abc
</p>
<p>def
</p>
</body>
因为p
都在以下时间关闭:
p
的开始
p
的父级关闭时
这是在 12.1.2.4 “可选标签”https://html.spec.whatwg.org/multipage/syntax.html#optional-tags 中指定的,但我认为除了“带有可选结束标签的元素”之外没有实际名称。
另见:P-end-tag (</p>) is not needed in HTML
【讨论】:
【参考方案11】:有成对的和不成对的标签。
未配对的标签打开,不必关闭。他们是独立的。
<img />, <input /> and <button />
【讨论】:
【参考方案12】:我看到它们被称为单线态(这可能是单标签的缩写形式)
【讨论】:
【参考方案13】:据here:
一个元素由一个开始标签、内容和一个结束标签组成。
【讨论】:
以上是关于你把不需要结束标签的标签叫做啥?的主要内容,如果未能解决你的问题,请参考以下文章