¿Cuáles son los valores válidos para el atributo id en HTML?


Answers

De la especificación de HTML 4 :

Los tokens de ID y NAME deben comenzar con una letra ([A-Za-z]) y pueden ir seguidos de cualquier cantidad de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_") , dos puntos (":") y puntos (".").

Un error común es usar una identificación que comienza con un dígito.

Question

Al crear los atributos de id para elementos HTML, ¿qué reglas existen para el valor?




  1. Los ID son los más adecuados para nombrar partes de su diseño, por lo que no deberían dar el mismo nombre para el ID y la clase.
  2. ID permite caracteres alfanuméricos y especiales
  3. pero evita usar # : . * ! # : . * ! símbolos
  4. espacios no permitidos
  5. no comenzado con números o un guión seguido de un dígito
  6. distingue mayúsculas y minúsculas
  7. usar selectores de ID es más rápido que usar selectores de clase
  8. use el guión "-" (el guión bajo "_" también puede usarse pero no es bueno para seo) para nombres largos de clase CSS o regla de Id.
  9. Si una regla tiene un selector de ID como su selector de clave, no agregue el nombre de la etiqueta a la regla. Como los ID son únicos, agregar un nombre de etiqueta ralentizaría innecesariamente el proceso de coincidencia.
  10. En HTML5, el atributo id se puede usar en cualquier elemento HTML y en HTML 4.01, el atributo id no se puede usar con: <base>, <head>, <html>, <meta>, <param>, <script>, <style>, and <title>.



HTML5

Teniendo en cuenta que la identificación debe ser única, es decir. no debe haber múltiples elementos en un documento que tengan el mismo valor de identificación.

Las reglas sobre el contenido de ID en HTML5 son (aparte de ser únicas):

This attribute's value must not contain white spaces. [...] 
Though this restriction has been lifted in HTML 5, 
an ID should start with a letter for compatibility.

Esta es la especificación W3 sobre ID (de MDN):

Any string, with the following restrictions:
must be at least one character long
must not contain any space characters
Previous versions of HTML placed greater restrictions on the content of ID values 
(for example, they did not permit ID values to begin with a number).

Más información:

  • W3 - atributos globales ( id )
  • Atributo MDN ( id )



Cualquier valor alfanumérico y " - " y " _ " es válido. Pero, debe comenzar el nombre de identificación con cualquier carácter entre AZ o az .




HTML5:

se deshace de las restricciones adicionales en el atributo de id. ver aquí . Los únicos requisitos que quedan (además de ser únicos en el documento) son:

  1. el valor debe contener al menos un caracter (no puede estar vacio)
  2. no puede contener ningún espacio de caracteres

PRE-HTML5:

ID debe coincidir:

[A-Za-z][-A-Za-z0-9_:.]*
  1. Debe comenzar con AZ o az caracteres
  2. Puede contener - (guión), _ (guión bajo),: (dos puntos) y . (período)

pero uno debe evitar : y . Beacause:

Por ejemplo, una ID podría etiquetarse como "ab: c" y referenciarse en la hoja de estilo como #ab: c pero además de ser la identificación para el elemento, podría significar id "a", clase "b", pseudo- selector "c". Lo mejor es evitar la confusión y evitar el uso. y: en conjunto.




jQuery maneja cualquier nombre de ID válido. Solo necesita escapar metacaracteres (es decir, puntos, puntos y comas, corchetes ...). Es como decir que JavaScript tiene un problema con las comillas solo porque no se puede escribir

var name = 'O'Hara';

Selectores en jQuery API (ver nota al pie)




alfabetos-> gorras y pequeños
dígitos-> 0-9
caracteres especiales-> ':', '-', '_', '.'

el formato debería estar comenzando desde '.' o un alfabeto, seguido por cualquiera de los caracteres especiales de más alfabetos o números. el valor del campo id no debe terminar en '_'.
Además, no se permiten espacios, si se proporcionan, se tratan como valores diferentes, lo que no es válido en el caso de los atributos de id.




Parece que aunque los dos puntos (:) y los puntos (.) Son válidos en las especificaciones de HTML, no son válidos como selectores de id en CSS por lo que probablemente sea mejor evitarlos si tiene la intención de usarlos para ese fin.




De la especificación de HTML 4 ...

Los tokens de ID y NAME deben comenzar con una letra ([A-Za-z]) y pueden ir seguidos de cualquier cantidad de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_") , dos puntos (":") y puntos (".").

EDIT: ¡oh! Golpeado al botón, otra vez!




En la práctica, muchos sitios usan atributos de id comienzan con números, aunque esto técnicamente no es HTML válido.

La especificación borrador de HTML 5 afloja las reglas para los atributos id y name : ahora son solo cadenas opacas que no pueden contener espacios.




Related



Tags

html html