我似乎记得以前版本的HTML(HTML5之前)中的大多数(可能是所有)属性都需要具有值的属性,例如readonly="readonly"
。
这对HTML5和autofocus
属性是否正确?
答案 0 :(得分:87)
在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
答案 1 :(得分:44)
引用 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"
,因为<input autofocus>
无效,而其他替代方案的可读性较差。否则,只需使用<input autofocus>
,因为它更短。
答案 2 :(得分:22)