2010-11-03 6 views
2

Une valeur d'attribut ID peut-elle commencer par un nombre?Question d'attribut ID HTML et XHTML

+0

pourquoi ne pas l'essayer? quels sont les résultats. –

+0

J'allais publier un commentaire sarcastique sur la simple écriture d'une page HTML/XHTML de base et sur la validation du W3C, mais j'ai réalisé que tout le monde n'était pas au courant du validateur W3C. Voici donc un lien :) http://validator.w3.org/ –

Répondre

0

La réponse actuellement acceptée est réellement incorrecte.

Tous les navigateurs ont toujours pris en charge les attributs d'ID commençant par un nombre, et HTML5 le permet désormais. Voir http://mathiasbynens.be/notes/html5-id-class:

Le HTML 4.01 spec states que ID jetons doivent commencer par une lettre ([A-Za-z]) et peut être suivi par un certain nombre de lettres, de chiffres ([0-9]), des traits d'union (-), souligne (_), des points-virgules (:) et des points (.). Pour l'attribut class, , il n'existe aucune limitation de ce type. Les noms de classe peuvent contenir n'importe quel caractère, et ils n'ont pas besoin de commencer par une lettre pour être valide.

HTML5 se débarrasse des restrictions supplémentaires sur the id attribute. Les seules exigences restantes - en plus d'être uniques dans le document - sont que la valeur doit contenir au moins un caractère (ne peut pas être vide) et qu'elle ne peut contenir aucun caractère d'espace.

Notez que vous devrez échapper correctement la valeur de l'attribut ID si vous souhaitez l'utiliser en CSS ou en JavaScript. Voir http://mothereffingcssescapes.com/#123-foo.

+0

Cette question est balisée en HTML (la balise est pour 4.01). Alors que de nombreux fournisseurs implémentent des fonctionnalités supplémentaires, pour écrire des applications portables, les développeurs doivent s'en tenir à la spécification sauf s'il existe une solution de contournement spécifique au fournisseur (comme les préfixes CSS '-moz' /' -webkit'). – Phil

+0

@Phil 1) Où dit-on que la balise HTML est pour HTML 4.01 seulement? Ce serait ridicule. 2) Avez-vous lu ma réponse? La seule raison pour laquelle cela a été spécifié en HTML5 est parce que tous les navigateurs l'ont toujours supporté de cette façon. Il n'y a aucune raison de ne pas l'utiliser si vous le souhaitez. –

+0

La balise 'html' est pour 4.01 (regardez sur la [page de balises] (http://stackoverflow.com/tags/html/info)). Il existe une balise spécifique pour ['html5'] (http://stackoverflow.com/tags/html5/info) – Phil