2011-02-17 11 views
29

Estoy utilizando el siguiente CSS, lo que parece estar funcionando: sin embargo parece que no puede ser codificado como estoCSS: después de codificar caracteres en el contenido

a.up:after{content: " ↓";} 
a.down:after{content: " ↑";}  

Los personajes, como la salida es literal y muestra la real cadena:

a.up:after{content: " ↓";} 
a.down:after{content: " ↑";} 

Si no puedo codificar, se siente como si tuviera que usar algo como .Append() en jQuery, ya que es compatible con la codificación. ¿Algunas ideas?

Respuesta

61

Para utilizar caracteres Unicode codificados en content necesita proporcionar o bien los propios personajes (como lo hace), o sus secuencias de escape UTF-8 en lugar de las entidades HTML:

a.up:after { content: " \2193"; } 
a.down:after { content: " \2191"; } 
+1

Oh, eso funciona, increíble gracias. Fuera de interés, ¿dónde encontraste las secuencias de escape UTF-8? Nunca he visto algo así antes. (Esperando el límite de tiempo para aceptar la respuesta) – theorise

+3

@danixd: en Windows hay un Mapa de caracteres (se encuentra en Todos los programas> Accesorios> Herramientas del sistema). Debería poder encontrar tablas de caracteres UTF-8 y sus escapes buscando también en la Web. – BoltClock

+0

impresionante, solo el mapa de ventanas, perfecto, ¡gracias de nuevo! – theorise

10

¿Por qué quieres para codificar esos personajes de todos modos? Recuerde, está escribiendo CSS, no HTML. Su código:

a.up:after{content: " ↓";} 
a.down:after{content: " ↑";} 

es perfectamente válido, siempre y cuando se guarda el archivo con codificación UTF-8 y enviar la cabecera apropiada:

Content-Type: text/css; charset=utf-8 

caracteres de codificación sólo se utiliza en HTML para que haya sin ambigüedad entre el contenido y las etiquetas. Por lo tanto, codificaría < como &lt; para que el navegador no crea que sea el comienzo de una etiqueta. Cosas como &darr; son solo productos básicos para las personas que no saben cómo usar utf-8 (o no pueden, por el motivo que sea) :).

+0

Este es un buen punto. – redolent

+1

¿Pero por qué no tener el contenido codificado para ser lo más compatible posible? Es cierto que el valor codificado no será "legible" cuando vea el código más tarde (o por otro desarrollador), pero siempre puede agregar comentarios para eso ... Y en este caso, no tendrá que recordar guardar todo el código en UTF/Unicode. – TheCuBeMan

Cuestiones relacionadas