我正在学习HTML5,我想知道为什么这些元素以不同方式关闭,第一个输入结束于>第二个以>结尾它有什么不同?
<input name = "howtosite" type = "radio"
value = "search engine" checked>
<input type = "color" autofocus />
(Hexadecimal code such as #ADD8E6)
答案 0 :(得分:3)
简而言之,一些术语:令人困惑的是,“HTML”现在意味着两件事:
div
的元素以及它的用途。div
这样的元素:<div>content</div>
。HTML的另一个序列化是XHTML。这两个序列号的位置不同,因为XHTML是XML。
HTML定义了一些从不拥有内容的元素,例如<br>
,而在HTML序列化中,它们通常就像<br>
那样编写。在XHTML序列化中,这是一个问题,因为XML要求关闭所有标记,<br>
只是一个开始标记。在结束>
之前放置斜杠(“solidus”)会关闭标记,因此在XHTML中,<br>
变为<br/>
。 HTML序列化中/
容忍,但它没有用处。它仅用于XHTML中。 (请注意,在真正的,非常古老的浏览器中,你可能需要在solidus之前有一个空格,例如<br />
,但我们确实说得很老了。)
对于<br>
<input>
和<div/>
来说,仅为真,例如div
和div
从未拥有任何内容,void elements(MathML和SVG)。例如,即使<div></div>
为空,也永远不会写autofocus
。空autofocus="autofocus"
的正确形式始终为{{1}}(无论是在HTML还是XHTML序列化中)。
foreign elements中的详细信息,特别是the specification。
关于您的两个具体示例:第一个仅在HTML序列化中有效。第二个在HTML序列化中也有效,如果{{1}}属性有值,则在XHTML序列化中有效(在XML中,属性必须有值,因此您必须编写{{1}})