@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-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. Keine anderen Zeichen, außer dem Unicode-Byte-Order-Mark, sind davor erlaubt. Sie folgt auch nicht den normalen CSS-Syntaxregeln, wie der Verwendung von Anführungszeichen oder Leerzeichen.
Wenn ein @charset nicht als Kodierungserklärung erkannt wird, wird es als normale At-Regel geparst. Das CSS-Syntaxmodul stuft dieses Fallback-Verhalten als veraltet ein und definiert es als eine nicht erkannte Legacy-Regel, die fallengelassen werden sollte, wenn ein Stylesheet auf Grammatikfehler 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 hört auf, sobald eine einen Treffer 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 Protokoll, das zum Bereitstellen des Stylesheets verwendet wird, angegeben wird. - Die
@charsetCSS-Deklaration. - Verwendung der im verweisenden Dokument definierten Zeichenkodierung: 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 Zeichenkodierung angibt. Es muss der Name einer web-sicheren Zeichenkodierung sein, die im IANA-Registry definiert ist, und muss in doppelte Anführungszeichen gesetzt werden, genau einem Leerzeichen (U+0020) folgen und sofort mit einem Semikolon beendet werden. Wenn mehrere Namen mit einer Kodierung verbunden sind, darf nur derjenige, der mit preferred markiert ist, verwendet werden.
Formale Syntax
Beachten Sie, dass die @charset-Regel nicht durch Syntax, sondern durch eine spezifische Byte-Sequenz der folgenden Form geparst wird:
@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
| Spezifikation |
|---|
| CSS Syntax Module Level 3 # at-ruledef-charset |
Browser-Kompatibilität
Siehe auch
- Zeichensatz Glossareintrag
- Unicode Glossareintrag