est-ce autofocus = «autofocus» ou autofocus?

87

Il semble que je me souvienne de la plupart (peut-être de tous) les attributs des versions précédentes de HTML (avant HTML5) qui exigeaient que les attributs aient des valeurs, comme readonly="readonly".

Est-ce vrai pour HTML5 et l' autofocusattribut?

Darryl Hein
la source
1
duplication possible de stackoverflow.com/questions/1033944/… puisque les deux concernent des attributs booléens (non marqués)
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Je conviens qu'ils sont similaires, mais légèrement différents puisqu'ils posent des questions sur des attributs différents.
Darryl Hein
1
l'autofocus ne fonctionne que. testé dans FF, Opera et Chrome ..
Sohail Arif

Réponses:

94

En HTML, vous utilisez des attributs booléens avec ou sans valeurs à votre guise. Un booléen, pour W3C, comme l'autofocus peut être écrit comme ça autofocusou autofocus="autofocus"ou aussi autofocus="".

Si vous ne voulez pas de mise au point automatique, ne l'écrivez pas.

Je pense que vous êtes confus parce que XHTML requiert des valeurs pour tous les attributs: attributes="values".

Voici quelques informations sur l'utilisation des attributs booléens en HTML: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute

Tim
la source
19
+1 pour mentionner XHTML. La conformité XML de XHTML est la seule raison pour laquelle il y a jamais eu un disabled="disabled". La même chose vaut pour la fermeture des balises. En HTML, toutes les balises n'ont pas besoin d'être fermées (par exemple, br ou input) mais comme XHTML doit être du XML valide, vous avez également besoin de balises de fermeture.
Tim Büthe
4
"XHTML est la seule raison pour laquelle il y a jamais eu un disabled="disabled"". Et SGML est la seule raison, pourquoi XHTML a la silly="silly"syntaxe booléenne au lieu de juste whatever="true", et HTML est la seule raison pour laquelle this="false"peut signifier ceci = vrai. :)
Sz.
52

Citant la spécification HTML5 et développant un peu Pekka:

http://www.w3.org/TR/html5/forms.html#autofocusing-a-form-control:-the-autofocus-attribute :

L'attribut autofocus est un attribut booléen.

http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :

La présence d'un attribut booléen sur un élément représente la valeur vraie et l'absence de l'attribut représente la valeur fausse.

Si l'attribut est présent, sa valeur doit être soit la chaîne vide, soit une valeur qui est une correspondance ASCII insensible à la casse pour le nom canonique de l'attribut, sans espace de début ou de fin.

Conclusion :

Les éléments suivants sont valides, équivalents et vrais :

<input type="text" autofocus />
<input type="text" autofocus="" />
<input type="text" autofocus="autofocus" />
<input type="text" autofocus="AuToFoCuS" />

Les éléments suivants ne sont pas valides :

<input type="text" autofocus="0" />
<input type="text" autofocus="1" />
<input type="text" autofocus="false" />
<input type="text" autofocus="true" />

L'absence de l'attribut est la seule syntaxe valide pour false :

<input type="text"/>

Recommandation

Si vous vous souciez d'écrire du XHTML valide, utilisez autofocus="autofocus", puisque <input autofocus>n'est pas valide et les autres alternatives sont moins lisibles. Sinon, utilisez simplement <input autofocus>car il est plus court.

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
la source
1
"Si vous vous souciez de ... XHTML". Nan. Laisse le mourir.
Dem Pilafian
22

Non , il suffit de spécifier l'attribut lui-même. C'était également le cas en HTML 4 .

Un certain nombre d'attributs sont des attributs booléens . La présence d'un attribut booléen sur un élément représente la valeur vraie et l'absence de l'attribut représente la valeur fausse.

Si l'attribut est présent, sa valeur doit être soit la chaîne vide, soit une valeur qui est une correspondance ASCII insensible à la casse pour le nom canonique de l'attribut, sans espace de début ou de fin.

Exemple:

<label><input type=checkbox checked name=cheese disabled> Cheese</label>
Pekka
la source
10
A donné à Tim la réponse acceptée ... il a besoin du représentant plus que vous :)
Darryl Hein