CSS-свойство `text-rendering`
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с января 2020 года.
Свойство text-rendering CSS сообщает механизму отрисовки, какие параметры следует оптимизировать при отображении текста.
Браузер находит компромисс между скоростью, удобочитаемостью и геометрической точностью.
Примечание: Свойство text-rendering является свойством SVG, которое не определено ни в одном стандарте CSS. Однако браузеры Gecko и WebKit позволяют применять это свойство к содержимому HTML и XML в Windows, macOS и Linux.
Один из заметных эффектов — optimizeLegibility, которое включает лигатуры (ff, fi, fl и т. д.) в тексте размером меньше 20px для некоторых шрифтов (например, Calibri, Candara, Constantia и Corbel от Microsoft, а также для семейства шрифтов DejaVu).
Синтаксис
/* Keyword values */ text-rendering: auto; text-rendering: optimizeSpeed; text-rendering: optimizeLegibility; text-rendering: geometricPrecision; /* Global values */ text-rendering: inherit; text-rendering: initial; text-rendering: revert; text-rendering: revert-layer; text-rendering: unset;
Значения
-
auto -
При отображении текста браузер делает обоснованные предположения о том, когда следует оптимизировать скорость, удобочитаемость и геометрическую точность. Различия в интерпретации этого значения браузерами см. в таблице совместимости.
Значение
auto— хороший вариант по умолчанию для баланса качества и производительности, особенно для длинных блоков обычного текста. -
optimizeSpeed -
При отображении текста браузер отдает предпочтение скорости отрисовки, а не удобочитаемости и геометрической точности. Кернинг и лигатуры отключаются.
Значение
optimizeSpeedпредпочтительно в условиях ограниченных ресурсов, например при использовании медленных процессоров или низком заряде батареи. -
optimizeLegibility -
Браузер отдает предпочтение удобочитаемости, а не скорости отрисовки и геометрической точности. Это включает кернинг и необязательные лигатуры.
Значение
optimizeLegibilityпредпочтительно для крупного, но короткого текста, например заголовков или баннеров, чтобы повысить его читаемость. Его также можно использовать для высококачественной профессиональной типографики, например в публикуемых статьях. Для обычных статей оно не рекомендуется из-за возможного снижения производительности. -
geometricPrecision -
Браузер отдает предпочтение геометрической точности, а не скорости отрисовки и удобочитаемости. Некоторые характеристики шрифтов — например, кернинг — масштабируются нелинейно. Поэтому это значение может улучшить внешний вид текста с такими шрифтами.
В SVG при увеличении или уменьшении масштаба текста браузеры вычисляют его окончательный размер (определяемый заданным размером шрифта и примененным масштабом) и запрашивают шрифт этого вычисленного размера в системной подсистеме шрифтов. Но если запросить размер шрифта, например, 9 при масштабе 140%, полученный размер шрифта 12.6 явно не поддерживается подсистемой шрифтов, поэтому браузер округляет его до 12. В результате текст масштабируется ступенчато.
Однако свойство
geometricPrecision— при полной поддержке со стороны механизма отрисовки — позволяет плавно масштабировать текст. При большом коэффициенте масштабирования текст может отображаться не так красиво, как хотелось бы, но его размер будет ожидаемым: он не будет округлен вверх или вниз до ближайшего размера шрифта, поддерживаемого Windows или Linux.Значение
geometricPrecisionне оптимизирует ни читаемость, ни производительность. Обычно оно полезно в SVG, когда графика должна масштабироваться без искажения размеров текста.Примечание: WebKit точно применяет указанное значение, а Gecko обрабатывает его так же, как
optimizeLegibility.
Формальное определение
| Исходное значение | auto |
|---|---|
| Применяется к | текстовым элементам |
| Наследуется | да |
| Вычисленное значение | как указано |
| Тип анимации | дискретный |
Формальный синтаксис
text-rendering =
auto |
optimizeSpeed |
optimizeLegibility |
geometricPrecision
Примеры
Автоматическое применение optimizeLegibility
В этом примере показано, как браузеры автоматически используют optimizeLegibility, когда font-size меньше 20px.
HTML
<p class="small">LYoWAT - ff fi fl ffl</p> <p class="big">LYoWAT - ff fi fl ffl</p>
CSS
.small {
font:
19.9px "Constantia",
"Times New Roman",
"Georgia",
"Palatino",
serif;
}
.big {
font:
20px "Constantia",
"Times New Roman",
"Georgia",
"Palatino",
serif;
}
Результат
optimizeSpeed и optimizeLegibility
В этом примере показана разница во внешнем виде optimizeSpeed и optimizeLegibility (в вашем браузере; в других браузерах результат может отличаться).
HTML
<p class="speed">LYoWAT - ff fi fl ffl</p> <p class="legibility">LYoWAT - ff fi fl ffl</p>
CSS
p {
font:
1.5em "Constantia",
"Times New Roman",
"Georgia",
"Palatino",
serif;
}
.speed {
text-rendering: optimizeSpeed;
}
.legibility {
text-rendering: optimizeLegibility;
}
Результат
Спецификации
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
text-rendering |
4Это свойство поддерживается только в Windows и Linux.В ранних версиях были ошибки в Windows и Linux, из-за которых нарушалась подстановка шрифтов и отображение малых прописных, возникали проблемы с межбуквенным интервалом или перекрытие текста. См. ошибку 40156511, ошибку 40430936, ошибку 40444347, ошибку 40286561. |
79Это свойство поддерживается только в Windows и Linux.В ранних версиях были ошибки в Windows и Linux, из-за которых нарушалась подстановка шрифтов и отображение малых прописных, возникали проблемы с межбуквенным интервалом или перекрытие текста. См. ошибку 40156511, ошибку 40430936, ошибку 40444347, ошибку 40286561. |
1Это свойство поддерживается только в Windows и Linux.Параметр optimizeSpeed не действует в Firefox 4, поскольку стандартный код отрисовки текста уже работает быстро, а более быстрого пути выполнения пока нет. Подробнее см. ошибку 595688. |
15 |
5 |
18Это свойство поддерживается только в Windows и Linux.В ранних версиях были ошибки в Windows и Linux, из-за которых нарушалась подстановка шрифтов и отображение малых прописных, возникали проблемы с межбуквенным интервалом или перекрытие текста. См. ошибку 40156511, ошибку 40430936, ошибку 40444347, ошибку 40286561. |
46 |
14 |
4.2 |
1.0Это свойство поддерживается только в Windows и Linux. Samsung Browser не работает в Windows и Linux. |
3В версиях с 3 по 4.3 есть серьезная ошибка:text-rendering: optimizeLegibility приводит к тому, что пользовательские веб-шрифты не отображаются. Ошибка исправлена в версии 4.4. |
4.2 |
auto |
4Chrome обрабатываетauto как optimizeSpeed. |
79Edge обрабатываетauto как optimizeSpeed. |
1Если размер шрифта составляет 20 пикселей или больше, Firefox обрабатываетauto как optimizeLegibility. Для более мелкого текста Firefox обрабатывает auto как optimizeSpeed. Порог в 20 пикселей можно изменить с помощью настройки browser.display.auto_quality_min_font_size. |
15Opera обрабатываетauto как optimizeSpeed. |
18Chrome Android обрабатываетauto как optimizeSpeed. |
46Если размер шрифта составляет 20 пикселей или больше, Firefox обрабатываетauto как optimizeLegibility. Для более мелкого текста Firefox обрабатывает auto как optimizeSpeed. Порог в 20 пикселей можно изменить с помощью настройки browser.display.auto_quality_min_font_size. |
14Opera Android обрабатываетauto как optimizeSpeed. |
1.0Samsung Browser обрабатываетauto как optimizeSpeed. |
4.4WebView Android обрабатываетauto как optimizeSpeed. |
|||
geometricPrecision |
13Поддерживает точную геометрическую точность без округления вверх или вниз до ближайшего размера шрифта, поддерживаемого операционной системой. |
79Поддерживает точную геометрическую точность без округления вверх или вниз до ближайшего размера шрифта, поддерживаемого операционной системой. |
1Firefox обрабатываетgeometricPrecision так же, как optimizeLegibility. |
15Поддерживает точную геометрическую точность без округления вверх или вниз до ближайшего размера шрифта, поддерживаемого операционной системой. |
6 |
18Поддерживает точную геометрическую точность без округления вверх или вниз до ближайшего размера шрифта, поддерживаемого операционной системой. |
46Firefox обрабатываетgeometricPrecision так же, как optimizeLegibility. |
14Поддерживает точную геометрическую точность без округления вверх или вниз до ближайшего размера шрифта, поддерживаемого операционной системой. |
6 |
1.0Поддерживает точную геометрическую точность без округления вверх или вниз до ближайшего размера шрифта, поддерживаемого операционной системой. |
4.4Поддерживает точную геометрическую точность без округления вверх или вниз до ближайшего размера шрифта, поддерживаемого операционной системой. |
6 |
optimizeLegibility |
≤31 |
79 |
≤50 |
≤18 |
5 |
≤31 |
≤50 |
≤18 |
4.2 |
≤2.0 |
≤4.4.3 |
4.2 |
optimizeSpeed |
≤31 |
79 |
≤50 |
≤18 |
5 |
≤31 |
≤50 |
≤18 |
4.2 |
≤2.0 |
≤4.4.3 |
4.2 |
См. также
- Отрисовка текста в
<canvas> - Оформление текста CSS — модуль CSS
- Связанные свойства CSS
-
text-decoration(и его свойства для отдельных компонентов, такие какtext-decoration-line,text-decoration-styleиtext-decoration-thickness) -
text-emphasis(и его свойства для отдельных компонентов, включаяtext-emphasis-color,text-emphasis-positionиtext-emphasis-style) text-shadowtext-transform
-
- Атрибут
text-renderingиз SVG - SVG и CSS
© 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/Properties/text-rendering