Colocando caracteres Unicode en el valor del contenido CSS

Tengo un problema. He encontrado el código HTML para la flecha hacia abajo, (↓)

Guay. Ahora necesito usarlo en CSS así:

 nav a:hover {content:"&darr";} 

Eso obviamente no funcionará desde es un símbolo HTML Parece que hay menos información sobre estos símbolos de “escape unicode” que se usan en css. Hay otros símbolos como \2020 que encontré pero no flechas. ¿Cuáles son los códigos de flecha?

¿Por qué no solo guarda / sirve el archivo CSS como UTF-8?

 nav a:hover:after { content: "↓"; } 

Si eso no es lo suficientemente bueno, y quieres mantenerlo todo, ASCII:

 nav a:hover:after { content: "\2193"; } 

El formato general para un carácter Unicode dentro de una cadena es \000000 a \FFFFFF – una barra invertida seguida de seis dígitos hexadecimales. Puede omitir los 0 dígitos iniciales cuando el carácter Unicode es el último carácter de la cadena o cuando agrega un espacio después del carácter Unicode. Consulte la especificación a continuación para obtener detalles completos.


Parte relevante de la especificación CSS2 :

En tercer lugar, los escapes de barra invertida permiten a los autores referirse a caracteres que no pueden colocar fácilmente en un documento. En este caso, la barra invertida es seguida por un máximo de seis dígitos hexadecimales (0..9A..F), que representan el carácter ISO 10646 ( [ISO10646] ) con ese número, que no debe ser cero. (No está definido en CSS 2.1 lo que sucede si una hoja de estilo contiene un carácter con código cero Unicode.) Si un carácter en el rango [0-9a-fA-F] sigue el número hexadecimal, el final del número necesita dejar en claro. Hay dos maneras de hacerlo:

  1. con un espacio (u otro carácter de espacio en blanco): “\ 26 B” (“& B”). En este caso, los agentes de usuario deberían tratar un par “CR / LF” (U + 000D / U + 000A) como un único carácter de espacio en blanco.
  2. proporcionando exactamente 6 dígitos hexadecimales: “\ 000026B” (“& B”)

De hecho, estos dos métodos pueden combinarse. Solo se ignora un carácter de espacio en blanco después de un escape hexadecimal. Tenga en cuenta que esto significa que se debe duplicar un espacio “real” después de la secuencia de escape.

Si el número está fuera del rango permitido por Unicode (por ejemplo, “\ 110000” está por encima del 10FFFF máximo permitido en Unicode actual), el UA puede reemplazar el escape con el “carácter de reemplazo” (U + FFFD). Si se va a mostrar el carácter, el UA debería mostrar un símbolo visible, como un glifo de “carácter faltante” (véase 15.2, punto 5).

  • Nota: los escapes de barra invertida siempre se consideran parte de un identificador o una cadena (es decir, “\ 7B” no es puntuación, aunque “{” es, y “\ 32” está permitido al comienzo de un nombre de clase, incluso aunque “2” no lo es).
    El identificador “te \ st” es exactamente el mismo identificador que “prueba”.

Lista completa: carácter Unicode ‘DOWNWARDS ARROW’ (U + 2193) .