HTML5: valores permitidos para ID y atributos de clase
A partir de HTML5, las únicas restricciones sobre el valor de una ID son:
- debe ser único en el documento
- no debe contener caracteres de espacio
- debe contener al menos un caracter
Se aplican reglas similares a las clases (a excepción de la singularidad, por supuesto).
Por lo tanto, el valor puede ser todos los dígitos, solo un dígito, solo caracteres de puntuación, incluye caracteres especiales, lo que sea. Simplemente no hay espacios en blanco. Esto es muy diferente de HTML4.
En HTML 4, los valores de ID deben comenzar con una letra, que luego puede ser seguida solo por letras, dígitos, guiones, guiones bajos, dos puntos y puntos.
En HTML5 estos son válidos:
<div id="999"> ... </div>
<div id="#%LV-||"> ... </div>
<div id="____V"> ... </div>
<div id="⌘⌥"> ... </div>
<div id="♥"> ... </div>
<div id="{}"> ... </div>
<div id="©"> ... </div>
<div id="♤₩¤☆€~¥"> ... </div>
Solo tenga en cuenta que el uso de números, signos de puntuación o caracteres especiales en el valor de una ID puede causar problemas en otros contextos (por ejemplo, CSS, JavaScript, expresiones regulares).
Por ejemplo, la siguiente ID es válida en HTML5:
<div id="9lions"> ... </div>
Sin embargo, no es válido en CSS:
De la especificación CSS2.1:
4.1.3 Personajes y caso
En CSS, los identificadores (incluidos nombres de elementos, clases e ID en selectores) pueden contener solo los caracteres [a-zA-Z0-9] y los caracteres ISO 10646 U + 00A0 y superiores, más el guión (-) y el guión bajo ( _); no pueden comenzar con un dígito, dos guiones o un guión seguido de un dígito .
En la mayoría de los casos, puede escapar de los personajes en contextos donde tienen restricciones o significado especial.
Referencias W3C
HTML5
3.2.5.1 El id
atributo
El id
atributo especifica el identificador único (ID) de su elemento.
El valor debe ser único entre todos los ID en el subárbol de inicio del elemento y debe contener al menos un carácter. El valor no debe contener caracteres de espacio.
Nota: No hay otras restricciones sobre qué forma puede tomar una identificación; en particular, los ID pueden consistir en solo dígitos, comenzar con un dígito, comenzar con un guión bajo, constar solo de puntuación, etc.
3.2.5.7 El class
atributo
El atributo, si se especifica, debe tener un valor que sea un conjunto de tokens separados por espacios que representan las diversas clases a las que pertenece el elemento.
Las clases que un elemento HTML le ha asignado consisten en todas las clases devueltas cuando el valor del atributo de clase se divide en espacios. (Los duplicados se ignoran).
No hay restricciones adicionales sobre los tokens que los autores pueden usar en el atributo de clase, pero se alienta a los autores a usar valores que describan la naturaleza del contenido, en lugar de valores que describan la presentación deseada del contenido.