这个html5表单元素有什么区别?

时间:2013-01-29 05:23:32

标签: html5

我正在学习HTML5,我想知道为什么这些元素以不同方式关闭,第一个输入结束于>第二个以>结尾它有什么不同?

<input name = "howtosite" type = "radio"
              value = "search engine" checked> 

<input type = "color" autofocus /> 
              (Hexadecimal code such as #ADD8E6)

1 个答案:

答案 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/>来说,仅为真,例如divdiv从未拥有任何内容,void elements(MathML和SVG)。例如,即使<div></div>为空,也永远不会写autofocus。空autofocus="autofocus"的正确形式始终为{{1}}(无论是在HTML还是XHTML序列化中)。

foreign elements中的详细信息,特别是the specification

关于您的两个具体示例:第一个仅在HTML序列化中有效。第二个在HTML序列化中也有效,如果{{1}}属性有值,则在XHTML序列化中有效(在XML中,属性必须有值,因此您必须编写{{1}})