web-dev-qa-db-ja.com

それはautofocus = "autofocus"またはautofocusですか?

以前のバージョンのHTML(HTML5より前)のほとんどの(おそらくすべての)属性が、readonly="readonly"

これはHTML5およびautofocus属性に当てはまりますか?

82
Darryl Hein

HTMLでは、必要に応じて値の有無にかかわらずブール属性を使用します。 W3Cの場合、オートフォーカスなどのブール値は、autofocusまたはautofocus="autofocus"またはautofocus=""

オートフォーカスが必要ない場合は、書きません。

XHTMLはすべての属性の値を必要とするため、混乱していると思います:attributes="values"

HTMLでのブール属性の使用に関する情報を次に示します。 http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute

88
Tim

HTML5仕様を引用して、Pekkaで少し拡張します:

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

Autofocus属性はブール属性です。

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

要素のブール属性の存在は真の値を表し、属性の不在は偽の値を表します。

属性が存在する場合、その値は、空の文字列、または属性の正規名と大文字と小文字を区別しないASCIIで、先頭または末尾に空白を含まない)の値である必要があります。

結論

以下は、有効、同等、およびtrueです。

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

以下はinvalidです。

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

falseの唯一の有効な構文は、属性がないことです。

<input type="text"/>

推奨事項

有効なXHTMLの作成を気にする場合は、autofocus="autofocus"が無効であり、他の選択肢は読みにくいため、<input autofocus>を使用します。それ以外の場合は、<input autofocus>を短くしてください。

No 、属性自体を指定するだけで十分です。 HTML 4 でもそうでした。

多くの属性はブール属性です。要素上のブール属性の存在は真の値を表し、属性の不在は偽の値を表します。

属性が存在する場合、その値は空の文字列か、属性の正規名に大文字と小文字を区別しないASCIIで、先頭または末尾の空白なしで一致する値)である必要があります。

例:

<label><input type=checkbox checked name=cheese disabled> Cheese</label>
22
Pekka 웃