@charset CSS at-rule
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die @charset-CSS-Regel gibt die in einem Stylesheet verwendete Zeichenkodierung an. Diese Syntax ist nützlich, wenn in einigen CSS-Eigenschaften Nicht-ASCII-Zeichen verwendet werden, etwa in content. Obwohl das erste Zeichen in @charset das Symbol @ ist, handelt es sich nicht um eine At-Regel. Es ist eine spezifische Bytefolge, die nur ganz am Anfang eines Stylesheets platziert werden kann. Davor sind keine anderen Zeichen erlaubt, mit Ausnahme der Unicode-Byte-Reihenfolge-Markierung. Außerdem folgt sie nicht den normalen CSS-Syntaxregeln, etwa hinsichtlich der Verwendung von Anführungszeichen oder Leerraum.
Wenn ein @charset nicht als Zeichensatzdeklaration erkannt wird, wird es als normale At-Regel geparst. Das Modul CSS-Syntax veraltet dieses Fallback-Verhalten und definiert es als nicht erkannte Legacy-Regel, die verworfen wird, wenn ein Stylesheet grammatikalisch geprüft wird.
Da es mehrere Möglichkeiten gibt, die Zeichenkodierung eines Stylesheets zu definieren, versucht der Browser die folgenden Methoden in der angegebenen Reihenfolge (und stoppt, sobald eine ein Ergebnis liefert):
- Den Wert des am Anfang der Datei platzierten Unicode-Byte-Reihenfolge-Zeichens.
- Den Wert, der durch das
charset-Attribut des HTTP-HeadersContent-Type:oder das Äquivalent im Protokoll angegeben wird, das zur Bereitstellung des Stylesheets verwendet wird. - Die CSS-Deklaration
@charset. - Die im verweisenden Dokument definierte Zeichenkodierung verwenden: das
charset-Attribut des<link>-Elements. Diese Methode ist veraltet und sollte nicht verwendet werden. - Annehmen, dass das Dokument UTF-8 verwendet.
Syntax
@charset "UTF-8";
@charset "iso-8859-15";
Parameter
- charset
-
Ein
<string>, der die zu verwendende Zeichenkodierung angibt. Es muss der Name einer webtauglichen Zeichenkodierung sein, die in der IANA-Registry definiert ist, und er muss in doppelte Anführungszeichen eingeschlossen sein, auf genau ein Leerzeichenzeichen (U+0020) folgen und unmittelbar mit einem Semikolon abgeschlossen werden. Wenn einer Kodierung mehrere Namen zugeordnet sind, darf nur der als preferred gekennzeichnete verwendet werden.
Formale Syntax
Beachten Sie, dass die Regel @charset nicht über die Syntax, sondern über eine spezifische Bytefolge der folgenden Form geparst wird:
@charset "<charset>";
Beispiele
>Gültige und ungültige Zeichensatzdeklarationen
@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
| Spezifikation |
|---|
| CSS Syntax Module Level 3> # at-ruledef-charset> |
Browser-Kompatibilität
Siehe auch
- Glossareintrag Zeichensatz
- Glossareintrag Unicode