Spec-Zone.ru › CSS

:lang()

Этот псевдокласс CSS CSS псевдокласс сопоставляет элементы на основе языка, на котором они определены.

Попробуйте

Примечание: В HTML язык определяется комбинацией атрибута lang, элемента <meta> и, возможно, информацией из протокола (такой как заголовки HTTP). Для других типов документов могут существовать другие методы определения языка.

Синтаксис

Формальный синтаксис

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

Параметры

<language-code>

Список кодов языков, разделённых запятыми, один или несколько кодов <string> для указания элементов с языком, соответствующим кодам языков BCP 47. Сопоставление по языковым диапазонам нечувствительно к регистру.

Описание

При выборе языков применяется неявное сопоставление с подстановочным знаком, поэтому :lang(de-DE) будет сопоставляться с de-DE, de-DE-1996, de-Latn-DE, de-Latf-DE, и de-Latn-DE-1996. Явное использование подстановочных знаков должно включать полное соответствие подтегу языка, поэтому :lang("*-F*") неверно, но :lang("*-Fr") верно.

Примеры

Сопоставление потомков с заданным языком

В этом примере псевдокласс :lang() используется для сопоставления родителей элементов цитат (<q>) с помощью комбинаторов потомков. Обратите внимание, что это не единственный способ сделать это, и лучший способ зависит от типа документа. Также обратите внимание, что для указания некоторых специальных символов цитат используются значения Unicode.

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

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

Результат

Сопоставление нескольких языков

Следующий пример демонстрирует, как сопоставить несколько языков, предоставив список кодов языков, разделённых запятыми. Также можно использовать подстановочный знак для сопоставления языков в заданном языковом диапазоне.

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

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

Результат

Спецификации

Спецификация
Селекторы Level 4
# lang-pseudo

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
:lang 1 12 1 8 3.1 18 4 10.1 2 1.0 4.4
argument_list Нет Нет 114 Нет 9 Нет 114 Нет 9 Нет Нет
wildcards Нет Нет 114 Нет 9 Нет 114 Нет 9 Нет Нет

См. также

  • Псевдокласс :dir, который сопоставляет элементы по направленности текста
  • Атрибут HTML lang
  • Атрибут HTML translate
  • RFC 5646: Теги для идентификации языков (также известный как BCP 47)

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/:lang

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API