2010-11-10 15 views
21

Mi stavo giocando con la pseudo classe :before in css, cercando di inserire un carattere speciale ma il risultato non era quello che speravo.Inserire caratteri speciali usando: prima della pseudo classe in css

Usando:

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

ottengo il personaggio che voglio, ma con un carattere  prima di esso e utilizzare:

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

ho la completa » sulla pagina html.

Posso pensare a un paio di modi per risolvere il mio problema, ma mi chiedevo quale sarebbe stata la sintassi corretta se volevo usare la pseudo classe :before.

A proposito, il mio doctype è:

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

risposta

13

Prova specificando <meta charset="utf-8">. Idealmente si desidera impostare questo nel server.

+0

HTML5 è UTF-8 per default. – Tae

+0

@Tae - http://static.medero.org/kak.html il server detta la codifica se non è specificato nella pagina stessa ... e poiché non ha specificato esplicitamente UTF-8 è ovvio che ha bisogno di . –

+0

Grazie, è stato davvero un errore nel meta tag, è stato impostato su ISO qualcosa ... – jeroen

2

Il browser non sta utilizzando la codifica di testo corretta, ovvero non sta utilizzando la stessa codifica di testo del tuo editor. Se si riceve la pagina da un server Web, l'approccio migliore è assicurarsi che il server invii l'intestazione Content-Type appropriata. Se non si ha il controllo sulle intestazioni del server Web o se si eseguono molti test utilizzando file HTML locali, aggiungere appropriate tags al documento per la codifica e la versione HTML che si sta utilizzando. Raccomando l'uso di UTF-8. Il file CSS (se è separato dall'HTML) dovrebbe usare la stessa codifica.

35

provare questo

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

\ 00BB è la rappresentazione Unicode di quel personaggio. Esso dovrebbe ragionevolmente funziona =)

1

Aggiungere questo sulla html, all'interno della <head> sezione

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

Ma se la pagina html è codificato in PHP, preferirei il seguente:

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

E non dimenticare di salvare qualsiasi file (css, html, php) con codifica UTF-8

+0

Grazie, è quello che ho finito quando ho visto la risposta di @ meder. – jeroen

0

Devi essere sicuro che tutti i tuoi file (CSS e HTML) hanno la stessa codifica.

16

La risposta è stata già detto, ma voglio fare riferimento a:

ho la completa &raquo; sulla pagina html.

Questo perché la proprietà CSS content non è trattata come HTML. Non è aggiunto al DOM, quindi non viene analizzato alcun markup specifico HTML. È possibile inserire direttamente un carattere: content: "Ԃ"; o utilizzare la notazione Unicode: content: "\0504";.

+0

Grazie, questo spiega anche perché non l'ho visto in Firebug. – jeroen

+0

Una buona spiegazione, questa era la soluzione di cui avevo bisogno. Saluti! –

5

So che è passato un po 'di tempo da quando è stata posta questa domanda, ma nel caso qualcuno ne avesse bisogno al giorno d'oggi, ho trovato la soluzione per questo.

Here's un grafico con un sacco di glifi. Trova quello che vuoi e copia il codice esadecimale per esso.

Quindi incollarlo here da convertire.

Si otterrà un valore che assomiglia a questo: \ 00E1 (Valore CSS)

Incollare questo valore sulla 'contenuti:' ed essere felici :)

Problemi correlati