2013-03-27 15 views
5

Esempio 'BLACK STAR' ★ (U + 2605)CSS Content carattere speciale: Hex vs carattere normale

.a:after { 
    content: "\2605"; 
    position:absolute; 
} 

.b:after { 
    content: "★"; 
    position:absolute; 
} 

Demo:http://jsfiddle.net/l2aelba/vBjxX/

Perché qualcuno/più raccomandato di utilizzare HEX come \2605 nel valore CSS? Entrambi ottengono lo stesso risultato.

+1

I caratteri speciali potrebbero non essere visualizzati correttamente con alcuni tipi di carattere/IDE. Appena testato con Inconsolata su Netbeans e la stella non viene mostrata. –

risposta

3

È sempre preferibile utilizzare i valori effettivi anziché i caratteri speciali codificatori come l'esempio in basso in quanto esiste la possibilità che non vengano visualizzati correttamente a causa della codifica del file CSS stesso.

+0

C'è anche il punto di consistenza quando un font di icona è mappato su un'area di utilizzo privata di Unicode, e quindi i suoi caratteri non hanno rappresentazione visiva in un foglio di stile. – daveyfaherty

2

Non è necessario ricordare ridicole scorciatoie da tastiera per aggiungere un numero unicode, per esempio.

Ricordare che questo numero esadecimale rappresenta un carattere distinto e standardizzato in Unicode. L'inserimento del personaggio reale ti lascia in balia dell'insieme di caratteri, e in effetti del carattere, utilizzato per visualizzare il css.

Più significativamente, molti font di icone, Font Awesome è un buon esempio, sono mappati per utilizzare uno degli spazi di uso privato di Unicode. Font I caratteri Awesome si trovano nella prima area di utilizzo privato.

Secondo la definizione dello standard, non ci sono caratteri standardizzati nelle aree di utilizzo private. Ciò significa che non vi è alcun carattere da visualizzare, quindi l'unica rappresentazione tangibile in un foglio di stile è un riferimento numerico al suo posto in unicode.

Perché queste icone sono mappate così lontano? Una buona ragione è che alcuni screen reader leggeranno qualsiasi carattere usato nei contenuti CSS. Questo può sembrare sbagliato, ma succede e deve essere difeso contro. I caratteri dell'area di utilizzo privata non verranno letti.

Personalmente, il mio approccio è usare i caratteri della tastiera così come sono e usare numeri unicode per tutto il resto. Ancora, se un cinese vuole usare il mio codice, so che hanno un facile accesso a tutti gli stessi caratteri sulla propria tastiera? Avranno numeri però.

Problemi correlati