@charset
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die @charset
-Regel in CSS spezifiziert die Zeichenkodierung, die im Stylesheet verwendet wird. Diese Syntax ist nützlich, wenn nicht-ASCII-Zeichen in einigen CSS-Eigenschaften, wie content
, verwendet werden. Obwohl das erste Zeichen in @charset
das @
-Symbol ist, handelt es sich nicht um eine At-Regel. Es ist eine spezifische Byte-Sequenz, die nur ganz am Anfang eines Stylesheets platziert werden kann. Vorher sind keine anderen Zeichen, außer dem Unicode-Byte-Order-Mark, erlaubt. Es folgt auch nicht den normalen CSS-Syntaxregeln wie der Verwendung von Anführungszeichen oder Leerzeichen.
Wenn ein @charset
nicht als Charset-Deklaration erkannt wird, wird es als normale At-Regel geparst. Das CSS-Syntax-Modul sieht dieses Fallback-Verhalten als veraltet an und definiert es als eine nicht erkannte Altnorm, die bei einer Überprüfung der Stylesheet-Grammatik verworfen werden sollte.
Da es mehrere Möglichkeiten gibt, die Zeichenkodierung eines Stylesheets zu definieren, wird der Browser die folgenden Methoden in dieser Reihenfolge ausprobieren (und stoppen, sobald eine ein Ergebnis liefert):
- Der Wert des Unicode-Byte-Order-Zeichens, das am Anfang der Datei platziert wird.
- Der Wert, der durch das
charset
-Attribut desContent-Type:
-HTTP-Headers oder das Äquivalent im verwendeten Protokoll zum Ausliefern des Stylesheets angegeben wird. - Die
@charset
-CSS-Deklaration. - Verwenden der Zeichenkodierung, die durch das referenzierende Dokument definiert wird: das
charset
-Attribut des<link>
-Elements. Diese Methode ist veraltet und sollte nicht verwendet werden. - Angenommen, dass das Dokument UTF-8 ist.
Syntax
@charset "UTF-8";
@charset "iso-8859-15";
Parameter
- charset
-
Ein
<string>
, das die zu verwendende Zeichenkodierung angibt. Es muss der Name einer web-sicheren Zeichenkodierung sein, die im IANA-Register definiert ist, und muss in doppelte Anführungszeichen gesetzt werden, genau einem Leerzeichen (U+0020) folgen und sofort mit einem Semikolon abgeschlossen werden. Wenn mehrere Namen mit einer Kodierung assoziiert sind, darf nur der verwendete Name mit bevorzugt gekennzeichnet sein.
Formale Syntax
Beachten Sie, dass die @charset
-Regel nicht über Syntax geparst wird, sondern über eine spezifische Byte-Sequenz der folgenden Form:
@charset "<charset>";
Beispiele
Gültige und ungültige Charset-Deklarationen
@charset "UTF-8"; /* Set the encoding of the style sheet to Unicode UTF-8 */
@charset 'iso-8859-15'; /* Invalid, wrong quotes used */
@charset "UTF-8"; /* Invalid, more than one space */
@charset "UTF-8"; /* Invalid, there is a character (a space) before the declarations */
@charset UTF-8; /* Invalid, the charset is a CSS <string> and requires double-quotes */
Spezifikationen
Specification |
---|
CSS Syntax Module Level 3 # at-ruledef-charset |
Browser-Kompatibilität
Siehe auch
- Eintrag im Zeichensatz-Glossar
- Eintrag im Unicode-Glossar