2010-12-15 111 views
66

我似乎記得最先前的版本要求HTML(HTML5)之前的(也許所有)屬性的屬性有值,比如readonly="readonly"HTML5:是自動對焦=「自動對焦」或自動對焦

這對HTML5和autofocus屬性是否正確?

+1

http://stackoverflow.com/questions/1033944/what-values-can-appear-in-the-selected-attribute-of-the-option-tag可能的重複,因爲兩者都是關於布爾屬性(未標記) – 2014-08-22 14:47:40

+0

我會同意他們是相似的,但稍有不同,因爲他們問的是不同的屬性。 – 2014-08-22 18:36:33

+1

自動對焦僅適用。在FF,Opera和Chrome上測試它.. – 2016-05-30 20:07:17

回答

72

在HTML中,可以使用具有或不具有值布爾屬性你喜歡。 W3C的布爾類似於自動對焦,可以像autofocusautofocus="autofocus"autofocus=""那樣寫。

如果你不想自動對焦就不寫。

我認爲你是困惑,因爲XHTML要求所有屬性值:attributes="values"

下面是關於HTML布爾屬性使用的一些信息: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute

+11

提及XHTML。 XHTML的XML符合性是「禁用」禁用的唯一原因。關閉標籤也是一樣。在HTML中,並不是每個標籤都需要關閉(例如br或輸入),但由於XHTML必須是有效的XML,因此還需要關閉標籤。 – 2014-01-06 13:23:43

21

No,它足以指定屬性本身。在HTML 4中也是這樣。

一些屬性是布爾屬性。元素上布爾屬性的存在表示真值,缺少屬性表示假值。

如果屬性存在,它的值必須是空字符串,或者是屬性的規範名稱的ASCII不區分大小寫的匹配,沒有前導或尾隨空白的值。

實施例:

<label><input type=checkbox checked name=cheese disabled> Cheese</label> 
+9

給Tim接受的答案...他需要的代表比你更多:) – 2010-12-15 04:04:38

+0

Tim's也更簡單 – aWebDeveloper 2011-12-21 07:12:41

30

引述HTML5規範和擴大佩卡一點:

http://www.w3.org/TR/html5/forms.html#autofocusing-a-form-control:-the-autofocus-attribute

自動對焦屬性一個布爾屬性。

http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes

一個元件上的布爾屬性的存在表示真實值,並且不存在屬性的表示假值。

如果屬性存在,它的值必須是空字符串,或者是屬性的規範名稱的ASCII不區分大小寫的匹配,沒有前導或尾隨空白的值。

結論

以下是有效,相當於和真實

<input type="text" autofocus /> 
<input type="text" autofocus="" /> 
<input type="text" autofocus="autofocus" /> 
<input type="text" autofocus="AuToFoCuS" /> 

以下是無效

<input type="text" autofocus="0" /> 
<input type="text" autofocus="1" /> 
<input type="text" autofocus="false" /> 
<input type="text" autofocus="true" /> 

缺少的屬性是唯一有效的語法:

<input type="text"/> 

建議

如果你關心編寫有效的XHTML,使用autofocus="autofocus",因爲<input autofocus>是無效的和其他的替代品少可讀。否則,只需使用<input autofocus>,因爲它更短。