2010-11-10 18 views
21

Estaba jugueteando con la pseudo clase :before en css, tratando de insertar un carácter especial pero el resultado no es el que esperaba.Insertar carácter especial usando: antes de pseudo clase en css

Usando:

.read_more:before { 
    content: "»"; 
    margin-right: 6px; 
} 

me sale el personaje que quiero, pero con un carácter  ante él y usando:

.read_more:before { 
    content: "»"; 
    margin-right: 6px; 
} 

tengo la completa » en la página HTML.

Puedo pensar en un par de maneras de resolver mi problema, pero me preguntaba cuál sería la sintaxis correcta si quisiera utilizar la pseudoclase :before.

Por cierto, mi tipo de documento es:

<!doctype html> 
<html lang="en"> 

Respuesta

13

intente especificar <meta charset="utf-8">. Lo ideal es que quieras configurar esto en el servidor.

+0

HTML5 es UTF-8 por omisión. – Tae

+0

@Tae - http://static.medero.org/kak.html el servidor dicta la codificación si no se especifica en la página en sí ... y porque no especificó explícitamente UTF-8 es obvio que necesita . –

+0

Gracias, de hecho fue un error en la metaetiqueta, se estableció en algo ISO ... – jeroen

2

Su navegador no usa la codificación de texto correcta, es decir, no está utilizando la misma codificación de texto que su editor. Si recibe la página de un servidor web, el mejor enfoque es asegurarse de que el servidor envíe el encabezado de tipo de contenido adecuado. Si no tiene control sobre los encabezados del servidor web, o si va a realizar muchas pruebas con archivos HTML locales, agregue appropriate tags a su documento para la codificación y la versión HTML que está utilizando. Recomiendo usar UTF-8. El archivo CSS (si está separado del HTML) debe usar la misma codificación.

35

probar esto

.read_more:before { 
    content: "\00BB"; 
    margin-right: 6px; 
} 

\ 00BB es la representación Unicode de ese carácter. Se debe razonablemente funciona =)

1

Añadir esto en el html, dentro de la sección <head>

<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8" /> 

Pero si la página HTML está codificado en PHP, yo preferiría la siguiente:

<?php 
    header("Content-Encoding: utf-8"); 
    header("Content-type: text/html; charset=utf-8"); 
?> 

Y no se olvide de guardar cualquier archivo (css, html, php) con codificación UTF-8

+0

Gracias, eso es lo que terminé haciendo cuando vi la respuesta de @meder. – jeroen

0

Debe asegurarse de que todos sus archivos (CSS y HTML) tengan la misma codificación.

16

La respuesta ha sido dicho ya, pero quiero hacer referencia a:

tengo la completa &raquo; en la página HTML.

Esto se debe a que la propiedad CSS content no se trata como HTML. No está adjuntado al DOM, por lo tanto, no se analiza ninguna marca específica de HTML. Puede insertar un carácter directamente: content: "Ԃ"; o utilizar la notación Unicode: content: "\0504";.

+0

Gracias, eso explica también por qué no lo vi en Firebug. – jeroen

+0

Buena explicación, esta era la solución que necesitaba. ¡Aclamaciones! –

5

Sé que ha pasado un tiempo desde que se hizo esta pregunta, pero en caso de que alguien la necesite hoy en día, encontré la solución para ello.

Here's un gráfico con muchos glifos. Encuentra el que quieres y copia el código hexadecimal para él.

Luego péguelo here para convertir.

Usted obtendrá un valor que tiene este aspecto: \ 00E1 (Valor CSS)

Pega este valor en su 'contenido:' y ser feliz :)

Cuestiones relacionadas