The StyleWorksCSS { Referenz · Labor · Übungen }
  1. Startseite
  2. Referenz
  3. Sprach-Pseudoklasse :lang()

CSS 2.1 · Pseudoklasse

Pseudoklasse Sprach-Pseudoklasse :lang()

Vollreferenz zu Sprach-Pseudoklasse :lang() aus CSS 1 und CSS 2.1 mit Syntax, Bedeutung, Beispiel und Browserunterstützung.

Erstveröffentlichung Lesezeit 3 min
stylesheet.css · Sprach-Pseudoklasse :lang()
q:lang(de) {
  outline: 2px solid #7A2FB0;
}

Überschrift

Erster Absatz direkt nach der Überschrift, mit einem Link und einem Zitat.

Zweiter Absatz, Klasse extra.

  • Erster Listenpunkt
  • Zweiter Listenpunkt mit Link
  • Dritter Listenpunkt

Dritter Absatz, ohne Klasse.

Selektorq:lang(de)
Treffer–
Spezifität–

Allgemeines

Auszeichnungssprachen wie HTML oder XML geben die Möglichkeit, den Elementen eines Dokuments eine Humansprache zuzuordnen, z. B. durch das Attribut lang, durch META-Elemente oder Informationen des HTTP-Headers.

In dem Fall lassen sich Elemente, basiert auf ihrer Humansprache, durch die Sprach-Pseudoklasse :lang() ansprechen. Es gibt nur eine Sprach-Pseudoklasse. Innerhalb der Klammer wird das Kürzel der gewünschten Sprache oder eine komma-separierte Liste notiert.

Code-Beispiel

(Der CSS2-Spezifikation entnommen.)

Für ein Dokument, das französische und deutschsprachige Elemente enthält, werden zunächst sprachabhängig die Anführungszeichen definiert.

Anschließend werden die Anführungszeichen für Q-Elemente genauso gesetzt wie die der Elternelemente. Das bedingt, dass auch Zitate in einer anderen Sprache immer mit den Anführungszeichen versehen werden, die der Sprachregelung des Dokumentes entsprechen.

HTML:lang(fr) { quotes: '« ' ' »' }
HTML:lang(de) { quotes: '»' '«' '\2039' '\203A' }
:lang(fr) > Q { quotes: '« ' ' »' }
:lang(de) > Q { quotes: '»' '«' '\2039' '\203A' }

Browserunterstützung

Die Sprach-Pseudoklasse wird bis heute von allen modernen Browsern unterstützt, mit folgenden Einschränkungen:

IE/Win 5.x, IE/Win 6, IE 7
MS IE/Win einschließlich Version 7 erkennen die Sprach-Pseudoklasse :lang noch nicht.
IE/Mac 5.x dagegen erkennt sie bereits.

Eric Meyer's CSS2 Test Suite zeigt am praktischen Beispiel, wie die Browser mit dieser Eigenschaft umgehen.

Keine Eigenschaft und kein Selektor stehen in einem Stylesheet für sich allein. In der Praxis kann das Zusammenspiel zwischen verschiedenen Elementen und Selektoren einen nicht zu unterschätzenden Einfluss auf die Fähigkeiten der Browser haben. Bugs treten oft erst durch das Zusammenwirken mehrerer Eigenschaften an unterschiedlichen Elementen auf.

Die Sprache kommt aus dem Baum

Die Pseudoklasse fragt nicht nach einem Attribut, sondern nach der Sprache, die für ein Element gilt. Das ist ein Unterschied mit Folgen, denn die Sprache wird im Dokumentbaum nach unten weitergereicht: ein Absatz in einem als deutsch ausgezeichneten Abschnitt gilt als deutsch, auch wenn er selbst keine Angabe trägt.

Ein Attributselektor kann das nicht. [lang=de] trifft genau die Elemente, an denen das Attribut steht, und keines der Elemente darin. Für die Formatierung nach Sprache ist er deshalb fast immer die falsche Wahl, denn ausgezeichnet wird üblicherweise oben, gestaltet wird unten.

Woher die Angabe stammt, spielt dabei keine Rolle. Die Seite nennt drei Quellen: das Attribut, ein Element im Kopf des Dokuments und die Angabe im Übertragungsprotokoll. Für die Pseudoklasse zählt allein, welche Sprache am Ende für das Element gilt.

Wenn die Angabe genauer ist als die Frage

Sprachkürzel können mehrteilig sein. Neben der Sprache selbst nennen sie oft eine Region, etwa für das Deutsch in Österreich oder der Schweiz. Die Pseudoklasse arbeitet deshalb nicht auf Gleichheit, sondern auf Übereinstimmung von vorn: :lang(de) trifft auch Elemente, deren Angabe eine Region anhängt.

Das ist die richtige Voreinstellung, denn wer Anführungszeichen für Deutsch festlegt, meint sie für alle deutschsprachigen Elemente. Wer nur eine Region ansprechen will, nennt das vollständige Kürzel.

Umgekehrt gilt die Übereinstimmung nicht: :lang(de-AT) trifft kein Element, das nur als deutsch ausgezeichnet ist. Die Frage darf also allgemeiner sein als die Angabe, aber nicht genauer.

Wofür man nach der Sprache fragt

Die verbreitetste Anwendung sind die Anführungszeichen. Deutsch, Englisch und Französisch setzen sie verschieden, und die Eigenschaft, die sie festlegt, wird üblicherweise über diese Pseudoklasse zugewiesen. Zusammen mit den erzeugten Inhalten ergibt das eine Auszeichnung für Zitate, die in jeder Sprache richtig gesetzt wird.

Daneben hängen die Silbentrennung, die Auswahl der Schrift bei Dokumenten mit mehreren Schriftsystemen und die Zeichenabstände an der Sprache. Auf dieser Website findet sich die Pseudoklasse außerdem in den Beispielen zur Sprachausgabe, wo Betonung, Zahlaussprache und Satzzeichen je Sprache eingestellt werden.

Voraussetzung für alles ist eine saubere Auszeichnung im Dokument. Fehlt sie, greift keine dieser Regeln, und die Sprachausgabe liest den Text mit den Ausspracheregeln der falschen Sprache vor.

Besonderheiten im Medientyp handheld

Diese Pseudoklasse ist nicht Teil des Standards CSS Mobile Profile 1.0 und wird bisher noch durch kein Mobilgerät unterstützt.

Ausblick

CSS3 konzentriert sich nicht so sehr auf die Erweiterung bestehender Pseudoklassen, sondern eher darauf, neue Pseudoklassen zu entwickeln, die dem Besucher mehr Interaktionsmöglichkeiten und dem Webautor mehr Möglichkeiten zur Auszeichnung von Teilen des Dokuments bieten, die nicht im Dokumentstammbaum auftreten.

Verwendete Standards

Dieser CSS-Referenz liegen folgende Spezifikationen zugrunde: CSS 1, CSS 2.1 CR und CSS Mobile.