Свойство CSS `fill-opacity`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с марта 2020 года.
Свойство fill-opacity CSS задаёт непрозрачность операции заливки (цветом, градиентом, узором и т. д.), применяемой к фигурам SVG или текстовым элементам для заливки элемента. Свойство задаёт непрозрачность только fill элемента; на обводку оно не влияет. Если свойство задано, оно переопределяет атрибут fill-opacity элемента.
Примечание: Свойство fill-opacity применяется только к элементам <circle>, <ellipse>, <path>, <polygon>, <polyline>, <rect>, <text>, <textPath> и <tspan>, вложенным в <svg>. Оно не применяется к другим элементам SVG, HTML или псевдоэлементам.
Синтаксис
/* numeric and percentage values */ fill-opacity: 0.2; fill-opacity: 20%; /* Global values */ fill-opacity: inherit; fill-opacity: initial; fill-opacity: revert; fill-opacity: revert-layer; fill-opacity: unset;
Значения
Значения <number> и <percentage> задают непрозрачность fill элемента.
-
<number> - Числовое значение от
0до1включительно. -
<percentage> - Процентное значение от
0%до100%включительно.
При значениях 0 или 0% элемент полностью прозрачен. При значениях 1 или 100% элемент полностью непрозрачен. При промежуточных значениях элемент полупрозрачен, и сквозь него виден контент, расположенный позади.
Формальное определение
| Исходное значение | 1 |
|---|---|
| Применяется к | Фигурам SVG и текстовым элементам |
| Наследуется | да |
| Проценты | соответствуют диапазону <code>[0,1]</code> |
| Вычисленное значение | То же, что и заданное значение, после ограничения <number> диапазоном [0.0, 1.0]. |
| Тип анимации | по типу вычисленного значения |
Формальный синтаксис
fill-opacity =
<'opacity'>
Примеры
Задание непрозрачности заливки элементов SVG
В этом примере показан базовый сценарий использования fill-opacity, а также то, как свойство CSS fill-opacity имеет приоритет над атрибутом fill-opacity и не влияет на stroke, применённую к фигуре.
HTML
Мы добавляем несколько различных графических элементов SVG и задаём для атрибута fill-opacity каждого из них значение 1 (кроме line), то есть заливка каждого элемента непрозрачна. Атрибут SVG fill-opacity не применяется к <line>.
<svg viewBox="0 0 100 150" xmlns="http://www.w3.org/2000/svg">
<rect x="10" y="10" width="30" height="30" fill-opacity="1" />
<rect x="60" y="10" rx="10" ry="10" width="30" height="30" fill-opacity="1" />
<circle cx="25" cy="75" r="20" fill-opacity="1" />
<ellipse cx="75" cy="75" rx="20" ry="10" fill-opacity="1" />
<line x1="50" x2="90" y1="40" y2="60" stroke="black" stroke-width="5" />
<polyline
points="60 90 65 100 70 95 75 110 80 105 85 120 90 115 95 130 100 125"
fill-opacity="1" />
<path d="M20,130 Q40,105 50,130 T90,130" fill-opacity="1" />
</svg>
CSS
С помощью CSS мы используем свойство fill-opacity, чтобы переопределить значение атрибута SVG fill-opacity и задать каждому элементу SVG своё значение.
Мы добавляем stroke к кругу и эллипсу, чтобы показать, что свойство fill-opacity не влияет на непрозрачность обводки.
Также заданы другие стили SVG, в том числе фоновое изображение, чтобы непрозрачность каждого элемента было легче увидеть. Для краткости они не показаны.
svg {
border: 1px solid;
height: calc(100vh - 20px);
background: repeating-linear-gradient(
to bottom right,
transparent 0 10px,
#cccccc 10px 11px
);
}
svg > * {
fill: black;
}
rect:last-of-type {
fill-opacity: 0.1;
}
circle {
fill-opacity: 0.6;
}
ellipse {
fill-opacity: 40%;
}
line {
fill-opacity: 10%;
}
polyline {
fill-opacity: 50%;
}
path {
fill-opacity: 0.5;
}
circle,
ellipse {
stroke: black;
stroke-width: 3px;
}
Результаты
Полностью непрозрачны только два элемента: первый прямоугольник и линия. Первый прямоугольник не соответствует ни одному из селекторов, поэтому к нему не применяется CSS, а fill полностью непрозрачен. Элемент line соответствует селектору, для которого задано fill-opacity: 10%. Однако для линии не выполняется операция рисования fill — видна только stroke, — поэтому объявление не оказывает эффекта.
Спецификации
| Спецификация |
|---|
| Модуль CSS Fill and Stroke уровня 3 # fill-opacity |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView для Android | WebView на iOS | |
fill-opacity |
1 |
≤15 |
1 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
См. также
- Атрибут SVG
fill-opacity - Свойства представления:
fill-opacity,clip-rule,color-interpolation-filters,fill-rule,fill,marker-end,marker-mid,marker-start,shape-rendering,stop-color,stop-opacity,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,text-anchorиvector-effect opacitybackground-color<color>-
Тип данных
<basic-shape>
© 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/fill-opacity