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




11 Answers

Para HTML 4 , la respuesta es técnicamente:

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

HTML 5 es aún más permisivo, y solo dice que una identificación debe contener al menos un carácter y puede que no contenga ningún espacio.

El atributo id es sensible a mayúsculas y minúsculas en XHTML .

Como un asunto puramente práctico, es posible que desee evitar ciertos caracteres. Los puntos, dos puntos y '#' tienen un significado especial en los selectores de CSS, por lo que tendrá que escapar de esos caracteres usando una barra invertida en CSS o una barra invertida doble en una cadena de selección que se pasa a jQuery . Piense en la frecuencia con la que tendrá que escapar de un personaje en sus hojas de estilo o código antes de volverse loco con puntos y dos puntos en las ID.

Por ejemplo, la declaración HTML <div id="first.name"></div> es válida. Puede seleccionar ese elemento en CSS como #first\.name y en jQuery así: $('#first\\.name'). #first\.name $('#first\\.name'). Pero si olvida la barra invertida, $('#first.name') , tendrá un selector perfectamente válido buscando un elemento con ID first y también con el name clase. Este es un error que es fácil de pasar por alto. Es posible que a la larga sea más feliz eligiendo el first-name identificación (un guión en lugar de un punto), en su lugar.

Puede simplificar sus tareas de desarrollo siguiendo estrictamente una convención de nomenclatura. Por ejemplo, si se limita por completo a los caracteres en minúscula y siempre separa palabras con guiones o guiones bajos (pero no ambos, elija uno y nunca use el otro), entonces tiene un patrón fácil de recordar. Nunca se preguntará "¿fue el primer FirstName o el FirstName ?" porque siempre sabrás que debes escribir el primer nombre. ¿Prefiere la funda de camello? Limítate a eso, sin guiones ni guiones bajos, y siempre, siempre con mayúsculas o minúsculas para el primer carácter, no los mezcles.

Un problema ahora muy oscuro fue que al menos un navegador, Netscape 6, trató incorrectamente los valores de los atributos de identificación como sensibles a las mayúsculas y minúsculas . Eso significaba que si hubiera escrito id="firstName" en su HTML (minúscula 'f') y #FirstName { color: red } en su CSS (mayúscula 'F'), ese navegador defectuoso no habría podido establece el color del elemento en rojo. En el momento de esta edición, abril de 2015, espero que no se te pida que apoyes a Netscape 6. Considera esto como una nota histórica.

entre diferencia

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




Técnicamente puede usar dos puntos y puntos en los atributos id / name, pero le sugiero que evite ambos.

En CSS (y en varias bibliotecas de JavaScript como jQuery), tanto el período como los dos puntos tienen un significado especial y se encontrará con problemas si no tiene cuidado. Los períodos son selectores de clase y los dos puntos son pseudo-selectores (por ejemplo, ": hover" para un elemento cuando el mouse está sobre él).

Si le asignas a un elemento el id "my.cool:thing", tu selector de CSS se verá así:

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

Lo que realmente dice "el elemento con un id de 'my', una clase de 'cool' y el 'cosa' de pseudo-selector" en CSS.

Se adhieren a AZ de cualquier caso, números, guiones bajos y guiones. Y como se dijo anteriormente, asegúrate de que tus ID sean únicas.

Esa debería ser tu primera preocupación.




Estrictamente debe coincidir

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

Pero jquery parece tener problemas con los dos puntos por lo que podría ser mejor evitarlos.




HTML5: valores permitidos para ID y atributos de clase

A partir de HTML5, las únicas restricciones en el valor de una ID son:

  1. debe ser único en el documento
  2. no debe contener caracteres de espacio
  3. debe contener al menos un carácter

Reglas similares se aplican a las clases (excepto por la singularidad, por supuesto).

Entonces, el valor puede ser todos los dígitos, solo un dígito, solo caracteres de puntuación, incluir 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, puntuación o caracteres especiales en el valor de una identificación puede causar problemas en otros contextos (por ejemplo, CSS, JavaScript, regex).

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 Caracteres y estuche

En CSS, los identificadores (incluidos los nombres de elementos, las clases y las ID en los selectores) pueden contener solo los caracteres [a-zA-Z0-9] y los caracteres ISO 10646 U + 00A0 y superior, 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, es posible que pueda escapar de los personajes en contextos donde tienen restricciones o un significado especial.

Referencias W3C

HTML5

3.2.5.1 El atributo id

El atributo id 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, las ID pueden consistir en solo dígitos, comenzar con un dígito, comenzar con un guión bajo, constar de solo puntuación, etc.

3.2.5.7 El atributo de class

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. (Se ignoran los duplicados).

No hay restricciones adicionales sobre los tokens que los autores pueden usar en el atributo de clase, pero se recomienda a los autores que usen valores que describan la naturaleza del contenido, en lugar de valores que describan la presentación deseada del contenido.




Los guiones, guiones bajos, puntos, dos puntos, números y letras son válidos para su uso con CSS y JQuery. Lo siguiente debería funcionar pero debe ser único en toda la página y también debe comenzar con una letra [A-Za-z].

Trabajar con dos puntos y puntos necesita un poco más de trabajo, pero puede hacerlo como muestra el siguiente ejemplo.

<html>
<head>
<title>Cake</title>
<style type="text/css">
    #i\.Really\.Like\.Cake {
        color: green;
    }
    #i\:Really\:Like\:Cake {
        color: blue;
    }
</style>
</head>
<body>
    <div id="i.Really.Like.Cake">Cake</div>
    <div id="testResultPeriod"></div>

    <div id="i:Really:Like:Cake">Cake</div>
    <div id="testResultColon"></div>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(function() {
            var testPeriod = $("#i\\.Really\\.Like\\.Cake");
            $("#testResultPeriod").html("found " + testPeriod.length + " result.");

            var testColon = $("#i\\:Really\\:Like\\:Cake");
            $("#testResultColon").html("found " + testColon.length + " result.");
        });
    </script>
</body>
</html>



Para hacer referencia a una identificación con un punto, debe usar una barra invertida. No estoy seguro de si es lo mismo para guiones o guiones bajos. Por ejemplo: HTML

<div id="maintenance.instrumentNumber">############0218</div>

CSS

#maintenance\.instrumentNumber{word-wrap:break-word;}



Además, nunca olvides que una identificación es única. Una vez utilizado, el valor de ID puede no aparecer nuevamente en ninguna parte del documento.

Puede tener muchas identificaciones, pero todas deben tener un valor único.

Por otro lado, está el elemento clase. Al igual que la identificación, puede aparecer muchas veces, pero el valor puede usarse una y otra vez.




para HTML5

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.

Al menos un personaje, sin espacios.

Esto abre la puerta a casos de uso válidos, como el uso de caracteres acentuados. También nos da mucha más munición para dispararnos en el pie, ya que ahora puedes usar valores de identificación que causarán problemas con CSS y JavaScript a menos que seas realmente cuidadoso.




  1. Los ID son los más adecuados para nombrar partes de su diseño, por lo que no deben dar el mismo nombre para ID y clase
  2. ID permite caracteres alfanuméricos y especiales.
  3. pero evite el uso de # : . * ! # : . * ! simbolos
  4. espacios no permitidos
  5. no comenzó 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 se puede usar, pero no es bueno para seo) para nombres largos de clase de CSS o regla de Id.
  9. Si una regla tiene un selector de ID como selector de clave, no agregue el nombre de etiqueta a la regla. Dado que 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>.



Sin espacios, debe comenzar con al menos un carácter de a a z y de 0 a 9.




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

el formato debe ser a partir de '.' o un alfabeto, seguido de cualquiera de los caracteres especiales de más alfabetos o números. el valor del campo id no debe terminar en '_'.
Además, los espacios no están permitidos, si se proporcionan, se tratan como valores diferentes, lo que no es válido en el caso de los atributos de identificación.




Related


Tags

html