W3docs

CSS-свойство font-language-override

Свойство CSS font-language-override позволяет задать языковую систему шрифта. Изучите значения и примеры.

CSS-свойство font-language-override управляет тем, какой набор языковых глифов использует шрифт. Многие шрифты поставляются с альтернативными начертаниями символов, корректными для одного языка, но неверными для другого — один и тот же символ Unicode может отображаться по-разному в турецком, датском или румынском тексте. Это свойство позволяет сообщить шрифтовому движку, какие типографские правила применять, независимо от фактического языка документа.

На этой странице объясняется, что делает свойство, когда оно полезно, какие значения принимает и чем отличается от HTML-атрибута lang.

Что делает это свойство

Современные шрифты OpenType содержат функцию locl (локализованные формы): таблицу, подставляющую языковые глифы в зависимости от языка, которым помечен текст. Обычно браузер определяет язык из атрибута HTML lang и передаёт его шрифту, который затем выбирает соответствующие глифы.

font-language-override позволяет переопределить этот автоматический выбор. Вместо того чтобы полагаться на атрибут lang, вы явно передаёте шрифту тег языковой системы OpenType. Это полезно в двух ситуациях:

  • Шрифт содержит нужные глифы, но под другим тегом. Некоторые шрифты раскрывают локализованные формы только под определённым языковым тегом (например, румынская запятая снизу ș может присутствовать лишь под молдавским тегом). Установка font-language-override активирует эту функцию.
  • Вы хотите использовать типографские правила другого языка. Если гарнитура не имеет правил для языка документа, можно заимствовать глифы из родственного языка, следующего схожим соглашениям.

Примечание: font-language-override меняет только выбор глифов. Оно не изменяет язык для проверки орфографии, переноса слов или программ экранного доступа — они по-прежнему определяются атрибутом lang, который всегда должен быть указан верно.

Начальное значениеnormal
Применяется кВсем элементам. Также применяется к ::first-letter и ::first-line.
НаследуетсяДа.
АнимируетсяДискретно.
ВерсияCSS3
DOM-синтаксисobject.style.fontLanguageOverride = "normal";

Синтаксис

font-language-override: normal | <string>;

<string> — это заключённый в кавычки тег языковой системы OpenType (например, "ENG" для английского, "DAN" для датского, "TRK" для турецкого). Эти теги взяты из спецификации OpenType и, как правило, состоят из трёх прописных букв — они не совпадают с двухбуквенными кодами BCP 47, используемыми атрибутом lang. Если строка не соответствует ни одной языковой системе, поддерживаемой шрифтом, объявление не имеет видимого эффекта.

Пример

Пример ниже демонстрирует работу свойства. Первый абзац использует поведение по умолчанию (normal), второй принудительно выбирает датские глифы.

<!DOCTYPE html>
<html>
  <head>
    <title>The title of the document </title>
    <style>
      .example1 {
        font-language-override: normal;
      }
      .example2 {
        font-language-override: "da";
      }
    </style>
  </head>
  <body>
    <h2>Font-language-override property example</h2>
    <p class="example1">Default language setting.</p>
    <p class="example2">Here the font-language-override is set to Danish.</p>
  </body>
</html>

Поскольку большинство системных шрифтов поставляются с локализованными формами лишь для ограниченного числа языков, изменение отображаемого текста часто незаметно — эффект виден только тогда, когда активный шрифт действительно содержит альтернативные глифы для указанного языка.

Значения

ЗначениеОписание
normalУказывает браузеру использовать глифы шрифта, соответствующие языку, заданному атрибутом lang. Это значение по умолчанию.
<string>Заключённый в кавычки тег языковой системы OpenType. Указывает браузеру использовать глифы шрифта, связанные с этой языковой системой, вместо той, что определяется атрибутом lang.

Поддержка браузерами и примечания

  • Поддержка ограничена: исторически это свойство работало только в Firefox. Большинство браузеров на основе Chromium и WebKit игнорируют его, поэтому не полагайтесь на него как на единственный механизм корректной локализованной типографики.
  • Надёжный кросс-браузерный способ получить языковые глифы — правильно задать атрибут lang в HTML. Обращайтесь к font-language-override только в качестве точечного исправления, когда конкретный шрифт помечает глифы нестандартным образом.
  • Для более тонкого управления отдельными функциями OpenType см. font-feature-settings; для сокращённых форм высокого уровня — font-variant и font-family.

Практика

Практика
Какова цель свойства 'font-language-override' в CSS?
Какова цель свойства 'font-language-override' в CSS?
Was this page helpful?