2010-12-15 109 views
66

Je semble rappeler la plupart des attributs (peut-être tous) dans les versions antérieures de HTML (avant HTML5) les attributs obligatoires pour avoir des valeurs, comme readonly="readonly".HTML5: est-ce autofocus = "autofocus" ou autofocus

Est-ce vrai pour HTML5 et l'attribut autofocus?

+1

duplication possible de http://stackoverflow.com/questions/1033944/what-values-can-appear-in-the-selected-attribute-of-the-option-tag, car les deux concernent des attributs booléens (non signalés) –

+0

Je serais d'accord pour dire qu'ils sont similaires, mais légèrement différents car ils demandent des attributs différents. –

+1

L'autofocus fonctionne uniquement. testé dans FF, Opera et Chrome .. –

Répondre

72

En HTML, vous utilisez des attributs booléens avec ou sans valeurs que vous le souhaitez. Booléen, pour le W3C, comme l'autofocus peut être écrit comme ça autofocus ou autofocus="autofocus" ou encore autofocus="".

Si vous ne voulez pas d'autofocus, ne l'écrivez pas.

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

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

+11

+1 pour mentionner XHTML. La conformité XML de XHTML est la seule raison pour laquelle il y a déjà eu un "disabled =" disabled "'. La même chose vaut pour la fermeture des tags. En HTML, toutes les balises ne doivent pas nécessairement être fermées (par exemple, br ou entrée), mais étant donné que XHTML doit être un langage XML valide, vous devez également fermer les balises. –

21

No, il suffit de spécifier l'attribut lui-même. C'était de cette façon aussi dans HTML 4.

Un certain nombre d'attributs sont 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 false.

Si l'attribut est présent, sa valeur doit être la chaîne vide ou une valeur correspondant à une correspondance ASCII sans distinction majuscules/minuscules pour le nom canonique de l'attribut, sans espace blanc de début ou de fin.

Exemple:

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

Gave Tim la réponse acceptée ... il a besoin du représentant plus que vous :) –

+0

Tim était plus simple aussi – aWebDeveloper

30

Citant la spécification HTML5 et développer 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 réelle, et l'absence de l'attribut représente la valeur faux.

Si l'attribut est présent, sa valeur doit être la chaîne vide ou une valeur correspondant à une correspondance ASCII sans distinction majuscules/minuscules pour le nom canonique de l'attribut, sans espace blanc de début ou de fin.

Conclusion:

Les éléments suivants sont valables , équivalent et vrai:

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

Les éléments suivants sont invalides:

<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 valable pour faux:

<input type="text"/> 

Recommandation

Si vous vous souciez de l'écriture XHTML valide, utilisez autofocus="autofocus", puisque <input autofocus> est invalide et d'autres alternatives sont moins lisible. Sinon, utilisez simplement <input autofocus> car il est plus court.