2013-03-27 5 views
5

Beispiel 'BLACK STAR' ★ (U + 2605)CSS Inhalt Sonderzeichen: Hex vs normalen Charakter

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

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

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

Warum jemand/am meisten empfohlene HEX zu verwenden wie \2605 in CSS-Wert? Beide erhalten ein gleiches Ergebnis.

+1

Sonderzeichen werden bei einigen Schriftarten/IDEs möglicherweise nicht korrekt angezeigt. Gerade getestet mit Inconsolata auf Netbeans und der Stern wird nicht angezeigt. –

Antwort

3

Es ist immer besser, die tatsächlichen Werte zu verwenden, anstatt Sonderzeichen wie das untere Beispiel zu codieren, da die Möglichkeit besteht, dass sie aufgrund der Kodierung der CSS-Datei nicht korrekt angezeigt werden.

+0

Es gibt auch den Punkt der Konsistenz, wenn eine Symbolschrift einem privaten Verwendungsgebiet von Unicode zugeordnet wird, und so haben die Zeichen keine visuelle Darstellung in einem Stylesheet. – daveyfaherty

2

Sie müssen sich nicht an lächerliche Tastaturkürzel erinnern, um eine Unicode-Nummer hinzuzufügen.

Denken Sie daran, dass diese hexadezimale Zahl ein eindeutiges und standardisiertes Zeichen in Unicode darstellt. Das Einfügen des eigentlichen Zeichens lässt Sie dem Zeichensatz und der Schriftart, mit der das CSS angezeigt wird, ausgeliefert sein.

Noch wichtiger, viele Symbolschriftarten, Font Awesome ist ein gutes Beispiel, sind zugeordnet, um einen der Private Use Areas von Unicode zu verwenden. Schrift Hervorragende Zeichen befinden sich im ersten privaten Bereich.

Durch seine Definition im Standard gibt es keine standardisierten Zeichen innerhalb der Private Use Areas. Dies bedeutet, dass es kein anzuzeigendes Zeichen gibt. Die einzige greifbare Darstellung in einem Stylesheet ist ein numerischer Verweis auf seinen Platz in Unicode.

Warum sind diese Symbole so weit ausgeblendet? Ein großer Grund ist, dass einige Screenreader alle Zeichen auslesen, die im CSS-Inhalt verwendet werden. Das mag falsch erscheinen, aber es passiert, und es muss dagegen gewehrt werden. Private Use-Area-Zeichen werden nicht ausgelesen.

Persönlich ist mein Ansatz, Tastaturzeichen so zu verwenden, wie sie sind, und Unicode-Nummern für alles andere zu verwenden. Selbst wenn eine chinesische Person meinen Code verwenden möchte, weiß ich dann, dass sie auf ihrer eigenen Tastatur leicht auf dieselben Zeichen zugreifen kann? Sie werden jedoch Nummern haben.