我似乎记得以前版本的 HTML(HTML5 之前)中的大多数(可能是所有)属性都需要属性才能具有值,例如readonly="readonly"
.
HTML5 和autofocus
属性是否如此?
在 HTML 中,您可以根据需要使用带有或不带有值的布尔属性。W3C 的布尔值,比如 autofocus 可以这样写autofocus
orautofocus="autofocus"
或 also autofocus=""
。
如果您不想要自动对焦,请不要编写它。
我认为您很困惑,因为 XHTML 需要所有属性的值:attributes="values"
.
以下是有关在 HTML 中使用布尔属性的一些信息:http: //www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute
引用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 值,并且没有前导或尾随空格。
结论:
以下是有效的、等价的和真实的:
<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" />
缺少该属性是false的唯一有效语法:
<input type="text"/>
推荐
如果您关心编写有效的 XHTML,请使用autofocus="autofocus"
, since<input autofocus>
是无效的,并且其他替代方案的可读性较差。否则,只需使用它,<input autofocus>
因为它更短。