是autofocus =“ autofocus”还是autofocus?


87

我似乎还记得以前版本的HTML(在HTML5之前)中的大多数(也许是所有)属性,这些属性必须具有值,例如readonly="readonly"

HTML5和autofocus属性对吗?


1
可能重复的stackoverflow.com/questions/1033944/…,因为两者都是关于布尔属性(未标记)的
Ciro Santilli郝海东冠状病六四事件法轮功2014年

我同意它们是相似的,但由于它们询问不同的属性而略有不同。
Darryl Hein 2014年

1
自动对焦仅适用。在FF,Opera和Chrome的..测试它
苏海尔阿里夫

Answers:


94

在HTML中,可以根据需要使用带或不带值的布尔属性。一个布尔值,对于W3C,像自动对焦可以写成这样autofocusautofocus="autofocus"或也autofocus=""

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

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

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


19
+1提及XHTML。XHTML的XML一致性是曾经出现过的唯一原因disabled="disabled"。关闭标签也是一样。在HTML中,并非每个标签都需要关闭(例如br或input),但是由于XHTML必须是有效的XML,因此您也需要关闭标签。
TimBüthe2014年

4
“ XHTML是曾经出现过disabled="disabled"“的唯一原因。而SGML是唯一的原因,为什么XHTML具有silly="silly"bool语法而不是just whatever="true",而HTML是唯一this="false"可以表示this = true的原因。:)
Sz。

52

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


1
“如果您关心... XHTML”。 不。 让它死吧。
Dem Pilafian

22

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

一些属性是布尔属性。元素上的布尔属性的存在表示真实值,而该属性的缺失表示错误值。

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

例:

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

10
给了蒂姆一个被接受的答案...他比您更需要代表了:)
Darryl Hein 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.