2010-11-09 33 views
5

¿Qué es eso? Así que se puede escapar de ellos ..Caracteres especiales en los selectores CSS

+0

Esta pregunta es demasiado simplista para tener una respuesta correcta. La respuesta aceptada solo responde a un aspecto de los "caracteres especiales", es decir, a los caracteres permitidos en los identificadores. No tiene en cuenta ninguna otra parte de la gramática Selectores (o gramática CSS, para el caso). – BoltClock

Respuesta

5

En CSS, identificadores (incluidos los elementos de nombres, clases e ID de los selectores) sólo puede contener los caracteres [a-zA-Z0-9] e ISO 10646 U + 00A1 y superior, más el guión (-) y el guión bajo (_); no pueden comenzar con un dígito, o un guión seguido de un dígito. Los identificadores también pueden contener caracteres y caracteres ISO 10646 como un código numérico (consulte el siguiente elemento) .code (consulte el siguiente elemento).

http://www.w3.org/TR/CSS21/syndata.html#characters

4

Normalmente, no habría necesidad de escapar caracteres especiales en el CSS. Esto se debe a que la mayoría de los caracteres del selector de CSS (., >, +, ~, #, :, etc) no son válidos en los atributos de identificación o los nombres de las etiquetas, y rara vez se utilizan en los nombres de las clases.

La única excepción notable es un elemento de espacio de nombres en el formulario <ns:tagName>, que se ve más comúnmente en Internet Explorer. Para orientar esos elementos, puede escapar del carácter :. Por ejemplo, los objetos VML tienen su comportamiento definido de la siguiente manera:

v\:* { behavior: url(#default#vml); } 
+1

Para cualquier persona que encuentre esto, he heredado algo de CSS con algunos caracteres inusuales en el selector (en este caso, un carácter + en una ID), y una barra negra escapa correctamente como se indica en – dKen

+0

. Tenga en cuenta que HTML5 permite cualquier carácter en los atributos de ID a excepción de los espacios en blanco, no es necesario escapar. Para hacer referencia a estos desde CSS, necesitaría escapar ciertos caracteres que no son válidos en un identificador de CSS. [Detalles de eso escapando aquí] (https://mathiasbynens.be/notes/css-escapes). – thomasrutter