@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 gibt die Zeichencodierung an, die im Stylesheet verwendet wird. Diese Syntax ist nützlich, wenn in einigen CSS-Eigenschaften, wie content
, nicht-ASCII-Zeichen verwendet werden. Obwohl das erste Zeichen in @charset
das @
-Symbol ist, handelt es sich nicht um eine at-rule. Es ist 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 zulässig. Es folgt auch nicht den normalen CSS-Syntaxregeln wie der Verwendung von Anführungszeichen oder Leerzeichen.
Wenn ein @charset
nicht als Charset-Erklärung erkannt wird, wird es als normale at-rule geparst. Das CSS-Syntax-Modul hebt dieses Fallback-Verhalten auf, indem es es als unerkannte Legacy-Regel definiert, die bei einer Grammatikprüfung eines Stylesheets entfernt werden sollte.
Da es mehrere Möglichkeiten gibt, die Zeichencodierung eines Stylesheets zu definieren, wird der Browser die folgenden Methoden in der folgenden Reihenfolge ausprobieren (und anhalten, sobald eine ein Ergebnis liefert):
- 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 Äquivalent im verwendeten Protokoll zur Auslieferung des Stylesheets angegeben wird. - Die
@charset
-CSS-Deklaration. - Verwendung der Zeichencodierung, die durch das referenzierende Dokument definiert wird: 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>
, das die zu verwendende Zeichencodierung angibt. Es muss der Name einer web-sicheren Zeichencodierung sein, die im IANA-Register definiert ist, und muss doppelt zitiert werden, genau einem Leerzeichen (U+0020) folgen und unmittelbar mit einem Semikolon beendet werden. Wenn mehrere Namen mit einer Codierung verbunden sind, darf nur der verwendete und als bevorzugt markierte Name verwendet werden.
Formale Syntax
Beachten Sie, dass die @charset
-Regel nicht über die Syntax geparst wird, sondern über eine spezifische Byte-Sequenz der folgenden Form:
@charset "<charset>";
Beispiele
Gültige und ungültige Charset-Erklärungen
@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