Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

@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):

  1. Der Wert des Unicode Byte-Order-Zeichens, das am Anfang der Datei platziert ist.
  2. Der Wert, der durch das charset-Attribut des Content-Type:-HTTP-Headers oder das entsprechende Äquivalent im verwendeten Protokoll angegeben wird, um das Stylesheet auszuliefern.
  3. Die @charset-CSS-Deklaration.
  4. Verwendung der Zeichenkodierung, die vom referenzierenden Dokument definiert ist: das charset-Attribut des <link>-Elements. Diese Methode ist veraltet und sollte nicht verwendet werden.
  5. Annahme, dass das Dokument UTF-8 ist.

Syntax

css
@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

css
@charset "UTF-8"; /* Set the encoding of the style sheet to Unicode UTF-8 */
css
@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