Spec-Zone.ru › CSS

Дескриптор CSS at-правила `font-width`

Базовая поддержка Ограниченная доступность

Эта функция не входит в базовый набор, поскольку она не работает в некоторых наиболее популярных браузерах.

Экспериментальная функция: Это экспериментальная технология
Перед использованием в рабочей среде внимательно изучите таблицу совместимости с браузерами.

Экспериментальная функция: Это экспериментальная технология
Перед использованием в рабочей среде внимательно изучите таблицу совместимости с браузерами.

Примечание: Дескриптор font-width — современная замена дескриптора font-stretch, который является устаревшим псевдонимом. Хотя font-width — предпочтительное название в спецификации, в настоящее время font-stretch поддерживается большим числом браузеров. Подробности см. в примере резервного варианта и таблице совместимости с браузерами.

Дескриптор font-width CSS позволяет авторам задавать обычное, узкое или широкое начертание для шрифтов, указанных в at-правиле @font-face.

Для одного семейства шрифтов авторы могут загрузить разные начертания, соответствующие различным стилям этого семейства, а затем использовать дескриптор font-width, чтобы явно задать ширину начертания шрифта. Доступные значения дескриптора font-width совпадают со значениями соответствующего свойства font-width.

Синтаксис

/* Single values */
font-width: ultra-condensed;
font-width: extra-condensed;
font-width: condensed;
font-width: semi-condensed;
font-width: normal;
font-width: semi-expanded;
font-width: expanded;
font-width: extra-expanded;
font-width: ultra-expanded;
font-width: 50%;
font-width: 100%;
font-width: 200%;

/* Multiple values */
font-width: 75% 125%;
font-width: condensed ultra-condensed;

Дескриптор font-width может принимать одно значение из приведённого ниже списка.

Значения

normal
Задаёт начертание обычной ширины.
semi-condensed, condensed, extra-condensed, ultra-condensed
Задаёт более узкое начертание, чем обычное; ультраузкое начертание является самым узким.
semi-expanded, expanded, extra-expanded, ultra-expanded
Задаёт более широкое начертание, чем обычное; ультраширокое начертание является самым широким.
<percentage>
Значение <percentage> от 50% до 200% включительно. Отрицательные значения для этого дескриптора недопустимы.

В предыдущих версиях спецификации font-width дескриптор принимал только девять ключевых слов. CSS Fonts Level 4 расширяет синтаксис, позволяя использовать также значение <percentage>. Благодаря этому вариативные шрифты могут обеспечивать непрерывное изменение ширины символов. В вариативных шрифтах TrueType или OpenType для изменения ширины используется вариация wdth.

Если в шрифте нет начертания, точно соответствующего заданному значению, значения меньше 100% сопоставляются с узким начертанием, а значения, большие или равные 100%, — с широким.

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

В таблице ниже показано соответствие ключевых слов процентным значениям:

Ключевое слово Процентное значение
ultra-condensed 50%
extra-condensed 62.5%
condensed 75%
semi-condensed 87.5%
normal 100%
semi-expanded 112.5%
expanded 125%
extra-expanded 150%
ultra-expanded 200%

Вариативные шрифты

Большинство шрифтов имеют определённую ширину, соответствующую одному из значений-ключевых слов. Однако вариативные шрифты могут поддерживать широкий диапазон ширин с высокой точностью, предоставляя дизайнеру больше возможностей для управления выбранным начертанием. Для этого удобно использовать диапазоны процентов.

В вариативных шрифтах TrueType или OpenType для изменения ширины глифов используется вариация wdth.

Доступность

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

  • Руководство MDN по WCAG: объяснения к руководству 1.4
  • [Понимание критерия успеха 1.4.8 W3C: понимание WCAG 2.0](https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-visual-presentation.html)

Формальное определение

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

Примеры

Задание процентного диапазона для font-width

В следующем примере используется шрифт League Mono. С помощью дескриптора font-width с разными ключевыми словами и процентными значениями из одного файла шрифта создаются разные семейства шрифтов.

<p>League Mono</p>
<p>League Mono</p>
<p>League Mono</p>
@font-face {
  font-family: "League Mono Ultra Condensed";
  src: url("/shared-assets/fonts/LeagueMono-VF.ttf") format("truetype");
  font-width: ultra-condensed; /* same as 50% */
}

@font-face {
  font-family: "League Mono Normal";
  src: url("/shared-assets/fonts/LeagueMono-VF.ttf") format("truetype");
  font-width: 100%; /* same as normal */
}

@font-face {
  font-family: "League Mono Ultra Expanded";
  src: url("/shared-assets/fonts/LeagueMono-VF.ttf") format("truetype");
  font-width: ultra-expanded; /* same as 200% */
}

p:nth-child(1) {
  font-family: "League Mono Ultra Condensed", sans-serif;
}

p:nth-child(2) {
  font-family: "League Mono Normal", sans-serif;
}

p:nth-child(3) {
  font-family: "League Mono Ultra Expanded", sans-serif;
}

Добавление резервного значения font-stretch

Поскольку font-width пока поддерживается не во всех основных браузерах, в качестве резервного варианта можно включить устаревший дескриптор font-stretch. Разместите font-stretch перед font-width, чтобы браузеры с поддержкой использовали современный дескриптор:

@font-face {
  font-family: "MyFont";
  src: url("my-font.woff2") format("woff2");
  font-stretch: condensed; /* for browsers that don't support font-width */
  font-width: condensed;
}

Примечание: Этот резервный вариант можно автоматизировать с помощью плагина postcss-preset-env для PostCSS. Он включает преобразование postcss-font-width-property, которое автоматически преобразует объявления font-width в font-stretch.

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

Спецификация
CSS Fonts Module Level 4
# descdef-font-face-font-width

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

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
font-width
Нет
Нет
Нет
Нет
18.4
Нет
Нет
Нет
18.4
Нет
Нет
18.4

См. также

  • Устаревший дескриптор-псевдоним font-stretch с более широкой поддержкой в браузерах
  • Дескриптор font-display
  • Дескриптор font-family
  • Дескриптор font-weight
  • Дескриптор font-style
  • Свойство font-feature-settings
  • Дескриптор font-variation-settings
  • Дескриптор src
  • Дескриптор unicode-range

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@font-face/font-width

Spec-Zone.ru

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