Spec-Zone.ru › CSS

рендеринг текста

Свойство text-rendering CSS предоставляет информацию рендеринговому движку о том, на что следует оптимизировать при рендеринге текста.

Браузер выбирает компромисс между скоростью, читаемостью и геометрической точностью.

Примечание: Свойство text-rendering — это свойство SVG, которое не определено в стандартах CSS. Однако браузеры Gecko и WebKit позволяют применять это свойство к HTML- и XML-содержимому в Windows, macOS и Linux.

Один из очень заметных эффектов — optimizeLegibility, который позволяет использовать лигатуры (ff, fi, fl и т. д.) в тексте размером меньше 20 пикселей для некоторых шрифтов (например, 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

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

optimizeSpeed

Браузер уделяет больше внимания скорости рендеринга, чем читаемости и геометрической точности при отрисовке текста. Он отключает кернинг и лигатуры.

optimizeLegibility

Браузер уделяет больше внимания читаемости, чем скорости рендеринга и геометрической точности. Это включает кернинг и необязательные лигатуры.

geometricPrecision

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

В SVG, когда текст масштабируется вверх или вниз, браузеры вычисляют окончательный размер текста (который определяется указанным размером шрифта и примененным масштабом) и запрашивают шрифт этого вычисленного размера у систем шрифтов платформы. Но если вы запросите размер шрифта, например, 9 с масштабом 140%, то результирующий размер шрифта 12,6 явно не существует в системе шрифтов, поэтому браузер округляет размер шрифта до 12. Это приводит к ступенчатому масштабированию текста.

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

Примечание: 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;
}

Результат

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

Спецификация
Scalable Vector Graphics (SVG) 2
# TextRenderingProperty

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
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 Internet не работает в Windows или Linux.
3С версии 3 до 4.3 существует серьезная ошибка, где text-rendering: optimizeLegibility приводит к тому, что пользовательские веб-шрифты не отображаются. Это было исправлено в версии 4.4.
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 рассматривает auto как optimizeSpeed.
46Если размер шрифта составляет 20 пикселей или более, Firefox рассматривает auto как optimizeLegibility. Для более мелкого текста Firefox рассматривает auto как optimizeSpeed. Пороговое значение 20 пикселей можно изменить с помощью параметра browser.display.auto_quality_min_font_size.
14Opera рассматривает auto как optimizeSpeed.
4.2Safari рассматривает auto как optimizeSpeed. См. ошибку 41363.
1.0Samsung Internet рассматривает auto как optimizeSpeed.
4.4Chrome рассматривает auto как optimizeSpeed.
geometricPrecision
13Поддерживает истинную геометрическую точность без округления до ближайшего поддерживаемого размера шрифта в операционной системе.
79Поддерживает истинную геометрическую точность без округления до ближайшего поддерживаемого размера шрифта в операционной системе.
1Firefox рассматривает geometricPrecision так же, как optimizeLegibility.
15Поддерживает истинную геометрическую точность без округления до ближайшего поддерживаемого размера шрифта в операционной системе.
6
18Поддерживает истинную геометрическую точность без округления до ближайшего поддерживаемого размера шрифта в операционной системе.
46Firefox рассматривает geometricPrecision так же, как optimizeLegibility.
14Поддерживает истинную геометрическую точность без округления до ближайшего поддерживаемого размера шрифта в операционной системе.
6
1.0Поддерживает истинную геометрическую точность без округления до ближайшего поддерживаемого размера шрифта в операционной системе.
4.4Поддерживает истинную геометрическую точность без округления до ближайшего поддерживаемого размера шрифта в операционной системе.

См. также

  • Вывод текста в <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
  • Атрибут SVG text-rendering

  • SVG и CSS

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/text-rendering

Spec-Zone.ru

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