Spec-Zone.ru › CSS

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

Результат

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

Спецификация
Масштабируемая векторная графика (SVG) 2
# TextRenderingProperty

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

Настольные Мобильные
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.
5Safari обрабатывает auto как optimizeSpeed. См. ошибку 41363.
18Chrome Android обрабатывает auto как optimizeSpeed.
46Если размер шрифта составляет 20 пикселей или больше, Firefox обрабатывает auto как optimizeLegibility. Для более мелкого текста Firefox обрабатывает auto как optimizeSpeed. Порог в 20 пикселей можно изменить с помощью настройки browser.display.auto_quality_min_font_size.
14Opera Android обрабатывает auto как optimizeSpeed.
4.2Safari на iOS обрабатывает auto как optimizeSpeed. См. ошибку 41363.
1.0Samsung Browser обрабатывает auto как optimizeSpeed.
4.4WebView Android обрабатывает auto как optimizeSpeed.
4.2WebView на iOS обрабатывает auto как optimizeSpeed. См. ошибку 41363.
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-shadow
    • text-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

Spec-Zone.ru

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