@charset
Die @charset
-Regel in CSS legt die Zeichenkodierung fest, die im Stylesheet verwendet wird. Diese Syntax ist nützlich, wenn nicht-ASCII-Zeichen in einigen CSS-Eigenschaften verwendet werden, wie z.B. content
. 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. 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-Regel geparst. Das CSS-Syntax-Modul hebt dieses Fallback-Verhalten auf und definiert es als unerkannte Legacy-Regel, die beim Grammatik-Checken eines Stylesheets entfernt werden soll.
Da es mehrere Methoden gibt, um die Zeichenkodierung eines Stylesheets festzulegen, versucht der Browser die folgenden Methoden in der folgenden Reihenfolge (und stoppt, 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 entsprechende Attribut im verwendeten Protokoll zur Übertragung des Stylesheets angegeben wird. - Die
@charset
-CSS-Deklaration. - Verwendung der im referenzierenden 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";
Formale Syntax
@charset "<charset>";
- charset
-
Ein
<string>
, das die zu verwendende Zeichenkodierung angibt. Es muss der Name einer web-sicheren Zeichenkodierung sein, die im IANA-Register definiert ist und muss doppelt angeführt werden. Es muss genau ein Leerzeichen (U+0020) folgen und sofort mit einem Semikolon abgeschlossen werden. Wenn mehrere Namen mit einer Kodierung verknüpft sind, darf nur derjenige verwendet werden, der als bevorzugt 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 |
---|
Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification # charset① |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Eintrag im Glossar: Zeichensatz
- Eintrag im Glossar: Unicode