:lang()

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.

* Some parts of this feature may have varying levels of support.

Die :lang() CSS Pseudoklasse selektiert Elemente basierend auf der Sprache, in der sie bestimmt wurden.

Probieren Sie es aus

*:lang(en-US) {
  outline: 2px solid deeppink;
}
<p lang="en-US">
  Music during road trips and long commutes aren’t a problem, but using
  headphones isn’t the best thing to do while driving in your car.
</p>

<p lang="pl-PL">
  Gdy widzimy znak z narysowaną czaszką i napisem
  <strong lang="en-US">DANGER</strong> to lepiej nie wchodzić do środka.
</p>

Hinweis: In HTML wird die Sprache durch eine Kombination des lang-Attributs, das <meta>-Element und möglicherweise durch Informationen aus dem Protokoll (wie HTTP-Header) bestimmt. Für andere Dokumenttypen können andere Methoden zur Bestimmung der Sprache existieren.

Syntax

Formale Syntax

:lang(<language-code> [,<language-code> ]*) {
  /* ... */
}

Parameter

<language-code>

Eine durch Kommata getrennte Liste von einem oder mehreren <string>s, die ein Element mit einem Sprachwert gemäß BCP 47-Sprachcodes anvisieren. Die Übereinstimmung anhand des Sprachbereichs ist nicht groß-/kleinschreibungssensitiv.

Beschreibung

Beim Selektieren von Sprachen gibt es ein implizites Wildcard-Matching, daher wird :lang(de-DE) mit de-DE, de-DE-1996, de-Latn-DE, de-Latf-DE und de-Latn-DE-1996 übereinstimmen. Die explizite Verwendung von Wildcards muss eine vollständige Übereinstimmung eines Sprachsubtags beinhalten, daher ist :lang("*-F*") ungültig, aber :lang("*-Fr") ist gültig.

Beispiele

Abgleichen von Kindern einer bestimmten Sprache

In diesem Beispiel wird die :lang()-Pseudoklasse verwendet, um die Eltern von Zitatelementen (<q>) mithilfe von Kindkombinatoren abzugleichen. Beachten Sie, dass dies nicht die einzige Möglichkeit darstellt, dies zu tun, und dass die beste Methode von der Art des Dokuments abhängt. Beachten Sie auch, dass Unicode-Werte verwendet werden, um einige der speziellen Anführungszeichen zu spezifizieren.

HTML

html
<div lang="en">
  <q>This English quote has a <q>nested</q> quote inside.</q>
</div>
<div lang="fr">
  <q>This French quote has a <q>nested</q> quote inside.</q>
</div>
<div lang="de">
  <q>This German quote has a <q>nested</q> quote inside.</q>
</div>

CSS

css
:lang(en) > q {
  quotes: "\201C" "\201D" "\2018" "\2019";
}
:lang(fr) > q {
  quotes: "« " " »";
}
:lang(de) > q {
  quotes: "»" "«" "\2039" "\203A";
}

Ergebnis

Abgleich mehrerer Sprachen

Das folgende Beispiel zeigt, wie mehrere Sprachen durch Bereitstellung einer durch Kommas getrennten Liste von Sprachcodes abgeglichen werden können. Es ist auch möglich, ein Wildcard zu verwenden, um Sprachen in einem bestimmten Sprachbereich abzugleichen.

CSS

css
/* Matches nl and de */
:lang("nl", "de") {
  color: green;
}

/* Omitting quotes & case-insensitive matching */
:lang(EN, FR) {
  color: blue;
}

/* Wildcard matching a language range */
:lang("*-Latn") {
  color: red;
}

HTML

html
<p lang="nl">Dit is een Nederlandse paragraaf.</p>
<p lang="de">Dies ist ein deutscher Satz.</p>
<p lang="en">This is an English sentence.</p>
<p lang="en-GB">Matching the language range of English.</p>
<p lang="fr">Ceci est un paragraphe français.</p>
<p lang="fr-Latn-FR">Ceci est un paragraphe français en latin.</p>

Ergebnis

Spezifikationen

Specification
Selectors Level 4
# lang-pseudo

Browser-Kompatibilität

Siehe auch