HTML5:是自动对焦=“自动对焦”还是自动对焦

我似乎回想以前版本的HTML(在HTML5之前)所需属性中的大多数(也许是全部)属性具有值,如readonly="readonly"

这对HTML5和autofocus属性是否正确?

在HTML中,您可以使用带有或不带值的布尔属性。 像自动对焦一样,W3C的布尔types可以像autofocusautofocus="autofocus"autofocus=""一样书写。

如果你不想自动对焦就不要写。

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

以下是关于HTML中使用布尔属性的一些信息: http : //www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntax.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

元素上布尔属性的存在表示真值,缺less属性表示假值。

如果该属性存在,则其值必须是空string,或者是该属性规范名称的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" /> 

缺less该属性是错误的唯一有效语法:

 <input type="text"/> 

build议

如果您关心编写有效的XHTML,请使用autofocus="autofocus" ,因为<input autofocus>无效,而其他替代方法的可读性较差。 否则,只需使用<input autofocus>因为它更短。

不 ,指定属性本身就足够了。 在HTML 4中也是这样。

一些属性是布尔属性 。 元素上布尔属性的存在表示真值,缺less属性表示假值。

如果该属性存在,则其值必须是空string,或者是该属性规范名称的ASCII不区分大小写的匹配值,且不包含前导或尾随空格。

例:

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