我似乎还记得以前版本的HTML(在HTML5之前)中的大多数(也许是所有)属性,这些属性必须具有值,例如readonly="readonly"
。
HTML5和autofocus
属性对吗?
我似乎还记得以前版本的HTML(在HTML5之前)中的大多数(也许是所有)属性,这些属性必须具有值,例如readonly="readonly"
。
HTML5和autofocus
属性对吗?
Answers:
在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
disabled="disabled"
。关闭标签也是一样。在HTML中,并非每个标签都需要关闭(例如br或input),但是由于XHTML必须是有效的XML,因此您也需要关闭标签。
disabled="disabled"
“的唯一原因。而SGML是唯一的原因,为什么XHTML具有silly="silly"
bool语法而不是just whatever="true"
,而HTML是唯一this="false"
可以表示this = true的原因。:)
引用HTML5规范并在Pekka上进行一些扩展:
http://www.w3.org/TR/html5/forms.html#autofocusing-a-form-control:-the-autofocus-attribute:
自动对焦属性是布尔属性。
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>
它,因为它更短。