Colocar carácter Unicode en el valor del contenido CSS [duplicado]

Resuelto davecave asked hace 12 años • 1 respuestas

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

Fresco. Ahora necesito usarlo en CSS así:

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

Obviamente, eso no funcionará ya que ↓es un símbolo HTML. Parece haber menos información sobre estos símbolos "Unicode de escape" que se utilizan en CSS. Hay otros símbolos como \2020ese que encontré pero no flechas. ¿Qué son los códigos de flecha?

davecave avatar May 01 '12 11:05 davecave
Aceptado

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

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

Si eso no es suficiente y desea conservarlo todo en ASCII:

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

El formato general para un carácter Unicode dentro de una cadena es \000000: \FFFFFFuna barra invertida seguida de seis dígitos hexadecimales. Puede omitir 0los 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 las especificaciones a continuación para obtener todos los detalles.


Parte relevante de la especificación CSS2 :

En tercer lugar, las barras invertidas permiten a los autores hacer referencia a caracteres que no pueden incluir fácilmente en un documento. En este caso, la barra invertida va seguida de como máximo seis dígitos hexadecimales (0..9A..F), que representan el carácter ISO 10646 ( [ISO10646] ) con ese número, que no debe ser cero. (En CSS 2.1 no está definido qué sucede si una hoja de estilo contiene un carácter con punto de código Unicode cero). Si un carácter en el rango [0-9a-fA-F] sigue al número hexadecimal, el final del número debe quedar 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 deben 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. Sólo 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 máximo 10FFFF permitido en Unicode actual), la UA puede reemplazar el escape con el "carácter de reemplazo" (U+FFFD). Si se va a mostrar el carácter, la UA debe mostrar un símbolo visible, como un glifo de "carácter faltante" (cf. 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 "{" sí lo es, y se permite "\32" al comienzo de un nombre de clase, incluso aunque "2" no lo es).
    El identificador "te\st" es exactamente el mismo identificador que "test".

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

Matt Ball avatar May 01 '2012 04:05 Matt Ball