fill-opacity
Baseline Широко распространённый
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 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 и элементам текстового содержимого |
| Наследуется | да |
| Проценты | соответствуют диапазону [0,1]
|
| Вычисленное значение | То же, что и указанное значение после обрезки <number> до диапазона [0,0, 1,0]. |
| Тип анимации | по типу вычисленного значения |
Формальный синтаксис
fill-opacity =
<'opacity'>
<opacity> =
<opacity-value>
<opacity-value> =
<number> |
<percentage>
Примеры
Определение непрозрачности заливки элементов 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 > * {
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 не применяется, и заливка полностью непрозрачна. line соответствует, с fill-opacity: 10% установленным. Однако, линия не имеет операции рисования fill — только stroke — поэтому объявление не оказывает влияния.
Спецификации
| Спецификация |
|---|
| CSS Fill and Stroke Module Level 3 # fill-opacity |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
fill-opacity |
≤80 | ≤80 | ≤72 | 67 | ≤13.1 | 80 | 79 | 57 | ≤13.4 | 13.0 | 80 |
См. также
- Атрибут 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–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/fill-opacity