Дескриптор CSS-правила `font-stretch`
Базовая поддержка Широко доступно
Эта возможность хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она поддерживается браузерами с января 2020 года.
Примечание: Дескриптор font-stretch был переименован в font-width в спецификации CSS Fonts. Для сохранения совместимости спецификация оставляет font-stretch в качестве устаревшего псевдонима дескриптора font-width.
Дескриптор font-stretch CSS позволяет авторам указывать обычное, сжатое или расширенное начертание для шрифтов, заданных в правиле @font-face.
Для конкретного семейства шрифтов авторы могут загружать различные начертания, соответствующие разным стилям одного семейства, а затем использовать дескриптор font-stretch, чтобы явно указать степень сжатия начертания шрифта.
Синтаксис
/* Single values */ font-stretch: ultra-condensed; font-stretch: extra-condensed; font-stretch: condensed; font-stretch: semi-condensed; font-stretch: normal; font-stretch: semi-expanded; font-stretch: expanded; font-stretch: extra-expanded; font-stretch: ultra-expanded; font-stretch: 50%; font-stretch: 100%; font-stretch: 200%; /* Multiple values */ font-stretch: 75% 125%; font-stretch: condensed ultra-condensed;
Дескриптор font-stretch может принимать одно значение из приведённого ниже списка.
Значения
-
normal - Задаёт начертание с обычной степенью сжатия.
-
semi-condensed,condensed,extra-condensed,ultra-condensed - Задаёт начертание, более сжатое, чем обычное; сверхсжатое начертание является наиболее сжатым.
-
semi-expanded,expanded,extra-expanded,ultra-expanded - Задаёт начертание, более расширенное, чем обычное; сверхрасширенное начертание является наиболее расширенным.
-
<percentage> - Значение
<percentage>от 50% до 200% включительно. Для этого дескриптора отрицательные значения не допускаются.
В более ранних версиях спецификации font-stretch дескриптор принимает только девять ключевых слов. 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 Понимание WCAG 2.0 от W3C](https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-visual-presentation.html)
Формальное определение
Формальный синтаксис
Примеры
Задание процентного диапазона для font-stretch
В следующем примере используется шрифт League Mono. С помощью дескриптора font-stretch с различными ключевыми словами и процентами из одного файла шрифта создаются варианты разных семейств шрифтов.
<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-stretch: ultra-condensed; /* same as 50% */
}
@font-face {
font-family: "League Mono Normal";
src: url("/shared-assets/fonts/LeagueMono-VF.ttf") format("truetype");
font-stretch: 100%; /* same as normal */
}
@font-face {
font-family: "League Mono Ultra Expanded";
src: url("/shared-assets/fonts/LeagueMono-VF.ttf") format("truetype");
font-stretch: 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;
}
Спецификации
| Спецификация |
|---|
| CSS Fonts Module Level 4 # font-stretch-desc |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
font-stretch |
62 |
17 |
62 |
49 |
10.1 |
62 |
62 |
41 |
10.3 |
6.0 |
62 |
10.3 |
См. также
- Современный дескриптор
font-width, заменяющий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-stretch