CSS-свойство `shape-rendering`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с января 2020 года.
Свойство shape-rendering CSS сообщает средству визуализации, какие компромиссы следует учитывать при отображении фигур, например контуров, окружностей или прямоугольников. Оно действует только на элементы <circle>, <ellipse>, <line>, <path>, <polygon>, <polyline> и <rect>. Если это свойство CSS задано явно, его значение переопределяет любые значения атрибута shape-rendering элемента.
Синтаксис
shape-rendering: auto; shape-rendering: crispEdges; shape-rendering: geometricPrecision; shape-rendering: optimizeSpeed; /* Global values */ shape-rendering: inherit; shape-rendering: initial; shape-rendering: revert; shape-rendering: revert-layer; shape-rendering: unset;
Значения
Значения <length> и <percentage> обозначают горизонтальный центр окружности или эллипса.
-
auto - Это значение указывает пользовательскому агенту найти компромисс между скоростью, четкостью краев и геометрической точностью, отдавая геометрической точности большее предпочтение, чем скорости и четкости краев.
-
crispEdges - Это значение указывает пользовательскому агенту отдавать предпочтение контрастности краев, а не геометрической точности или скорости визуализации. При итоговой визуализации, вероятно, будут пропущены такие методы, как сглаживание. Также могут корректироваться положения и ширина линий, чтобы выровнять края по пикселям устройства.
-
geometricPrecision - Это значение указывает пользовательскому агенту отдавать предпочтение геометрической точности, а не скорости или четкости краев. При итоговой визуализации могут применяться такие методы, как сглаживание.
-
optimizeSpeed - Это значение указывает пользовательскому агенту отдавать предпочтение скорости визуализации, а не геометрической точности или четкости краев. При итоговой визуализации, вероятно, будут пропущены такие методы, как сглаживание.
Формальное определение
| Исходное значение | auto |
|---|---|
| Применяется к |
элементам <circle>, <ellipse>, <line>, <path>, <polygon>, <polyline> и <rect> внутри <code>svg</code> |
| Наследуется | да |
| Вычисленное значение | как задано |
| Тип анимации | дискретный |
Формальный синтаксис
shape-rendering =
auto |
optimizeSpeed |
crispEdges |
geometricPrecision
Пример
Чтобы показать различия в визуализации, создадим набор из четырех эллипсов одинакового размера и формы.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 120"> <ellipse cx="50" cy="60" rx="40" ry="60" /> <ellipse cx="150" cy="60" rx="40" ry="60" /> <ellipse cx="250" cy="60" rx="40" ry="60" /> <ellipse cx="350" cy="60" rx="40" ry="60" /> </svg>
Затем применим четыре значения shape-rendering, по одному к каждому эллипсу.
ellipse:nth-of-type(1) {
shape-rendering: crispEdges;
}
ellipse:nth-of-type(2) {
shape-rendering: geometricPrecision;
}
ellipse:nth-of-type(3) {
shape-rendering: optimizeSpeed;
}
ellipse:nth-of-type(4) {
shape-rendering: auto;
}
Результат в формате SVG показан здесь. У первого и третьего эллипсов (если считать слева направо) с большей вероятностью будут зубчатые края, а второй должен выглядеть более гладким. Внешний вид четвертого, последнего эллипса будет зависеть от конкретных компромиссов, выбранных пользовательским агентом, в котором вы просматриваете пример.
Спецификации
Совместимость с браузерами
| Компьютерные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
shape-rendering |
1 |
79 |
3 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
auto |
1 |
79 |
3 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
crispEdges |
≤31 |
79 |
≤50 |
≤18 |
4 |
≤31 |
≤50 |
≤18 |
3.2 |
≤2.0 |
≤4.4.3 |
3.2 |
geometricPrecision |
≤31 |
79 |
≤50 |
≤18 |
4 |
≤31 |
≤50 |
≤18 |
3.2 |
≤2.0 |
≤4.4.3 |
3.2 |
optimizeSpeed |
≤31 |
79 |
≤50 |
≤18 |
4 |
≤31 |
≤50 |
≤18 |
3.2 |
≤2.0 |
≤4.4.3 |
3.2 |
См. также
- Атрибут SVG
shape-rendering
© 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/shape-rendering