@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
CSS-Regel gibt die Zeichenkodierung an, 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 am Anfang eines Stylesheets platziert werden darf. Keine anderen Zeichen, außer dem Unicode-Byte-Order-Mark, sind davor erlaubt. Es folgt zudem nicht den normalen CSS-Syntax-Regeln 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 setzt dieses Fallback-Verhalten außer Kraft, indem es sie als eine nicht erkannte veraltete Regel definiert, die beim Syntax-Checken eines Stylesheets verworfen werden sollte.
Da es mehrere Möglichkeiten gibt, die Zeichenkodierung eines Stylesheets zu definieren, prüft der Browser die folgenden Methoden in der angegebenen Reihenfolge (und stoppt, sobald eine erfolgreich ist):
- Der Wert des Unicode-Byte-Order-Zeichens, das sich am Anfang der Datei befindet.
- Der Wert, der durch das
charset
-Attribut desContent-Type:
-HTTP-Headers oder das Äquivalent im verwendeten Protokoll angegeben wird. - Die
@charset
-CSS-Deklaration. - Die im referenzierenden Dokument definierte Zeichenkodierung: das
charset
-Attribut des<link>
-Elements. Diese Methode ist veraltet und sollte nicht verwendet werden. - Die Annahme, dass das Dokument UTF-8 ist.
Syntax
@charset "UTF-8";
@charset "iso-8859-15";
Formale Syntax
@charset "<charset>";
- charset
-
Eine
<string>
, die 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, unmittelbar gefolgt von genau einem Leerzeichen (U+0020) und sofort mit einem Semikolon abgeschlossen werden. Wenn mehrere Namen einer Kodierung zugeordnet sind, darf nur derjenige verwendet werden, der mit preferred markiert ist.
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
Report problems with this compatibility data on GitHubdesktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
@charset |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- See implementation notes.
Siehe auch
- Zeichensatz Glossareintrag
- Unicode Glossareintrag