@charset
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Die @charset CSS-Regel gibt die Zeichenkodierung an, die im Stylesheet verwendet wird. Diese Syntax ist nützlich, wenn in einigen CSS-Eigenschaften nicht-ASCII-Zeichen verwendet werden, wie z.B. content. Obwohl das erste Zeichen in @charset das @-Symbol ist, ist es keine at-rule. Es handelt sich um eine spezifische Byte-Sequenz, die nur ganz am Anfang eines Stylesheets platziert werden kann. Keine anderen Zeichen außer dem Unicode-Byte-Order-Mark sind davor 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-rule geparst. Das CSS-Syntax-Modul lässt dieses Fallback-Verhalten fallen, indem es als unerkannte veraltete Regel definiert wird, die entfernt werden sollte, wenn ein Stylesheet grammatikalisch überprüft wird.
Da es mehrere Möglichkeiten gibt, die Zeichenkodierung eines Stylesheets zu definieren, wird der Browser die folgenden Methoden in der folgenden Reihenfolge versuchen (und stoppen, sobald eine zu einem Ergebnis führt):
- Der Wert des Unicode Byte-Order-Zeichens, das am Anfang der Datei platziert ist.
- Der Wert, der durch das
charset-Attribut desContent-Type:-HTTP-Headers oder das entsprechende Äquivalent im verwendeten Protokoll angegeben wird, um das Stylesheet auszuliefern. - Die
@charset-CSS-Deklaration. - Verwendung der Zeichenkodierung, die vom referenzierenden Dokument definiert ist: das
charset-Attribut des<link>-Elements. Diese Methode ist veraltet und sollte nicht verwendet werden. - Annahme, dass das Dokument UTF-8 ist.
Syntax
@charset "UTF-8";
@charset "iso-8859-15";
Parameter
- charset
-
Ein
<string>, der die zu verwendende Zeichenkodierung angibt. Es muss der Name einer web-sicheren Zeichenkodierung sein, die im IANA-Register definiert ist, und muss doppelt umschlossen sein, folgt genau einem Leerzeichen (U+0020) und wird sofort mit einem Semikolon beendet. Wenn mehrere Namen mit einer Kodierung verbunden sind, muss nur der als preferred markierte verwendet werden.
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
- Zeichensatz Glossareintrag
- Unicode Glossareintrag