html - paginas - selectores css
¿Qué caracteres son ampliamente compatibles con los nombres de clases de CSS? (4)
/ y otros símbolos se usan como selectores (especialmente en CSS3) por lo que no se pueden usar en nombres de clase. Los personajes compatibles son los que ya dijiste.
Como se detalla aquí, entre otros lugares, los únicos caracteres válidos en un nombre de clase html / css son az, AZ, 0-9, guión y guión bajo, y el primer carácter debe ser una letra. Pero en la práctica, ¿qué personajes son, de hecho, compatibles con la mayoría de los navegadores? Más específicamente, me pregunto qué navegadores entienden correctamente una barra inclinada (/) en un nombre de clase, y qué navegadores admiten nombres de clase que comienzan con un número.
Principalmente estoy interesado en obtener una respuesta para html en lugar de xhtml, en caso de que haya una diferencia.
Gracias.
Unicode funciona http://snook.ca/archives/html_and_css/unicode_for_css_class_names
http://www.w3.org/TR/2008/REC-CSS2-20080411/syndata.html
Si miras la gramática, entiendes que los identificadores se definen como
ident {nmstart}{nmchar}*
nmstart [a-zA-Z]|{nonascii}|{escape}
nmchar [a-z0-9-]|{nonascii}|{escape}
nonascii [^/0-/177]
unicode //[0-9a-f]{1,6}[ /n/r/t/f]?
así que aquí está tu respuesta ...
(esto es para CSS2)
Tenga en cuenta que los nombres de clase están definidos por HTML, no CSS. HTML4 dice que el atributo de class
es una cdata-list
, que es tokens separados por espacios. Por lo tanto, un solo token de nombre de clase puede contener cualquier carácter, excepto los caracteres de espacios en blanco.
Me pregunto qué navegadores entienden correctamente una barra inclinada (/) en un nombre de clase, y qué navegadores admiten nombres de clase que comienzan con un número.
Para referirse a tales nombres en un selector de clase CSS, necesitaría usar un escape. p.ej.:
<div class="1blah/bläh">
es emparejado por:
./31 blah/2F bläh { ... }
Esto es compatible con todos los navegadores actuales . No fue compatible con IE5, pero afortunadamente ya no es una preocupación. (Si le preocupaban los errores de codificación de caracteres, tal vez prefiera codificar el ä
as /E4
, pero eso no es una limitación del CSS como tal).
Si está preguntando qué navegadores le permitirán salirse con la suya con el selector no válido
.1blah/bläh
Entonces, bueno, ¿a quién le importa realmente? Solo usa el válido.