1121 votos

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

A la hora de crear la id atributos de los elementos HTML, ¿qué reglas hay para el valor?

1037voto

dgvid Puntos 10847

Para HTML 4, la respuesta es técnicamente:

ID y NOMBRE de los distintivos deben comenzar con una letra ([a-Za-z]) y puede ser seguido por cualquier número de letras, dígitos ([0-9]), guiones ("-"), caracteres de subrayado ("_"), dos puntos (":")y los puntos (".").

HTML 5 es aún más permisiva, diciendo sólo que una tarjeta de identificación debe contener al menos un carácter y no puede contener los caracteres de espacio.

Sin embargo, como un asunto práctico, que será algo más limitado, si usted quiere que sus documentos para trabajar con una variedad de navegadores, editores CSS, JavaScript y marcos.

Como se observó en otras respuestas, jQuery tiene problemas con los identificadores que contienen puntos y los dos puntos.

Un problema más sutil es que algunos navegadores tratar de identificación de los valores de atributo entre mayúsculas y minúsculas, mientras que otros navegadores no. Eso significa que si usted escriba id="firstName" en tu HTML (de menor case 'f') y #FirstName { color: red } en tu CSS (parte superior del case 'F'), un buggy navegador fijar el elemento de color rojo. Debido a que tanto las definiciones como caracteres válidos para la identificación, usted recibirá ningún error de una herramienta de validación.

Usted puede evitar estos problemas, por apegarse estrictamente a una convención de nomenclatura. Por ejemplo, si usted se limita enteramente a las letras minúsculas y siempre separar las palabras con guiones o guiones bajos (pero no tanto, elegir uno y nunca uso la otra), entonces usted tiene una fácil de recordar patrón. Usted nunca tendrá que preguntarse "fue firstName o FirstName? ", porque siempre saben que deben tipo first_name.

150voto

Peter Hilton Puntos 10580

A partir de la especificación HTML 4:

ID y NOMBRE de los distintivos deben comenzar con una letra ([a-Za-z]) y puede ser seguido por cualquier número de letras, dígitos ([0-9]), guiones ("-"), caracteres de subrayado ("_"), dos puntos (":")y los puntos (".").

Un error común es el uso de un IDENTIFICADOR que se inicia con un dígito.

85voto

Michael Thompson Puntos 1104

Técnicamente se puede utilizar los puntos y los períodos en nombre/identificación de los atributos, pero yo recomendaría evitar el tanto.

En CSS (y varias librerías de JavaScript como jQuery), tanto en el período y los dos puntos tienen significado especial y que se ejecutará en problemas si no tienes cuidado. Los períodos son los selectores de clase y los dos puntos son pseudo-selectores (p. ej., "a:hover" para un elemento cuando el ratón está encima de él).

Si le das un elemento con el id "my.cool:cosa", su selector CSS tendrá este aspecto:

#my.cool:thing { ... /* some rules */ ... }

Lo que está realmente diciendo, "el elemento con un id de 'mi', una clase de 'cool' y la 'cosa' pseudo-selector" en CSS-hablar.

Palo de a-Z en cualquier caso, números, guiones bajos y guiones. Y como se dijo anteriormente, asegúrate de que tu identificadores son únicos.

Que deberían ser su primera preocupación.

49voto

Álvaro G. Vicario Puntos 57607

jQuery no manejar cualquier IDENTIFICADOR válido nombre. Sólo se necesita para escapar de los metacaracteres (i.e., puntos, puntos y comas, corchetes...). Es como decir que JavaScript tiene un problema con las comillas sólo porque usted no puede escribir

var name = 'O'Hara';

Los selectores en jQuery API (ver nota inferior)

31voto

Mr Shark Puntos 5241

Estrictamente debe coincidir con el

[A-Za-z][-A-Za-z0-9_:.]*

Pero jquery parece tener problemas con dos puntos, así que sería mejor evitar.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X