90

我似乎记得以前版本的 HTML(HTML5 之前)中的大多数(可能是所有)属性都需要属性才能具有值,例如readonly="readonly".

HTML5 和autofocus属性是否如此?

4

3 回答 3

95

在 HTML 中,您可以根据需要使用带有或不带有值的布尔属性。W3C 的布尔值,比如 autofocus 可以这样写autofocusorautofocus="autofocus"或 also autofocus=""

如果您不想要自动对焦,请不要编写它。

我认为您很困惑,因为 XHTML 需要所有属性的值:attributes="values".

以下是有关在 HTML 中使用布尔属性的一些信息:http: //www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute

于 2010-12-15T01:00:30.007 回答
53

引用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>因为它更短。

于 2014-08-22T14:46:29.370 回答
22

,指定属性本身就足够了。在HTML 4中也是如此。

许多属性是布尔属性。元素上存在布尔属性表示真值,不存在该属性表示假值。

如果该属性存在,则其值必须是空字符串或与属性的规范名称匹配的不区分大小写的 ASCII 值,并且没有前导或尾随空格。

例子:

<label><input type=checkbox checked name=cheese disabled> Cheese</label>
于 2010-12-15T00:56:30.317 回答