297 votos

La colocación de caracteres Unicode en CSS de valor de contenido

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

Fresco. Ahora necesito para usarlo en CSS así:

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

Que, obviamente, no funciona desde ↓ es un símbolo de HTML. Parece tener menos información acerca de estos "escape unicode" los símbolos que se utilizan en el css. Hay otros símbolos, como \2020 que he encontrado pero sin flechas. ¿Cuáles son las flecha códigos?

453voto

Matt Ball Puntos 165937

¿Por qué no acaba de salvar y servir el archivo CSS como UTF-8?

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

Si eso no es suficientemente bueno, y usted quiere mantener todo-ASCII:

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

El formato general de un carácter Unicode dentro de cadenas es \000000 a \FFFFFF - una barra invertida seguida de seis dígitos hexadecimales. Usted puede dejar de lado que conducen 0 dígitos cuando el carácter Unicode es el último carácter de la cadena o cuando se agrega un espacio después de los caracteres Unicode. Ver la especificación de abajo para los detalles completos.


Parte relevante de la especificación CSS2:

Tercero, la barra invertida se escapa de permitir que los autores se refieren a personajes que no se puede poner fácilmente en un documento. En este caso, la barra invertida es seguido por más de seis dígitos hexadecimales (0..9..F), de los cuales se destacan por la ISO 10646 ([ISO10646]) personaje con ese número, el que no debe ser cero. (No se ha definido en el CSS 2.1 ¿qué sucede si una hoja de estilo no contienen un personaje con punto de código Unicode cero.) Si un personaje en el rango [0-9a-fA-F] sigue el número hexadecimal, de la final de el número debe ser hecho claro. Hay dos maneras de hacerlo:

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

De hecho, estos dos métodos pueden ser combinados. Sólo un carácter de espacio en blanco es ignorado después de un escape hexadecimal. Tenga en cuenta que esto significa que un espacio "real" después de la secuencia de escape debe ser doble.

Si el número está fuera del intervalo permitido por Unicode (por ejemplo, "\110000" está por encima de la máxima 10FFFF permitido en la actual Unicode), la UA puede reemplazar a la fuga con el "carácter de reemplazo" (U+FFFD). Si el personaje se va a mostrar, la UA debe mostrar un símbolo visible, como una "falta de carácter" glifo (cf. 15.2, punto 5).

  • Nota: la barra invertida se escapa siempre son considerados parte de un identificador o una cadena (es decir, "\7B" no es signo de puntuación, aunque "{" y "\32" se permite al comienzo del nombre de una clase, aunque "2" no es).
    El identificador "te\st" es exactamente el mismo identificador como "prueba".

Lista completa: Carácter Unicode 'FLECHA hacia ABAJO' (U+2193).

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