lighting-color

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

lighting-color CSS 属性定义了 SVG <filter><feDiffuseLighting><feSpecularLighting> SVG 光照滤镜原语的光源颜色。如果存在,它会覆盖元素的 lighting-color 属性。

注意: lighting-color 属性仅适用于嵌套在 <svg> 中的 <feDiffuseLighting><feSpecularLighting> 元素。它不适用于其他 SVG、HTML 或伪元素。

语法

css
/* <color> values */
lighting-color: red;
lighting-color: hsl(120deg 75% 25% / 60%);
lighting-color: currentColor;

/* Global values */
lighting-color: inherit;
lighting-color: initial;
lighting-color: revert;
lighting-color: revert-layer;
lighting-color: unset;

<color>

光照的颜色。这可以是任何有效的 CSS <color> 值。

正式定义

初始值white
应用于<feDiffuseLighting><feSpecularLighting> 元素在 <svg>
继承性
计算值同指定值
动画类型由计算值

正式语法

lighting-color = 
<color>

示例

定义滤镜光照的颜色

此示例演示了 lighting-color 的基本用例,以及 CSS lighting-color 属性如何优先于 lighting-color 属性。

HTML

我们有一个 SVG,其中包含两个 <filter> 元素,一个带有 <feDiffuseLighting> 子元素,另一个带有 <feSpecularLighting> 子元素。每个都包含 SVG lighting-color 属性,将光照颜色定义为 red。这两个子元素都带有一个 <fePointLight>,这是设置光源的必需子元素。我们包含了两个带有滤镜属性的 <rect> 元素;这是滤镜将显示的位置。

html
<svg viewBox="0 0 420 120" xmlns="http://www.w3.org/2000/svg">
  <filter id="flood1">
    <feDiffuseLighting lighting-color="red">
      <fePointLight x="75" y="30" z="10" />
    </feDiffuseLighting>
  </filter>
  <filter id="flood2">
    <feSpecularLighting specularExponent="5" lighting-color="red">
      <fePointLight x="225" y="75" z="5" />
    </feSpecularLighting>
  </filter>

  <rect id="r1" filter="url(#flood1)" />
  <rect id="r2" filter="url(#flood2)" />
</svg>

CSS

我们使用 CSS heightwidthxy 属性定义 <rect> 的大小和位置。我们还在 SVG 中添加了一个背景图像,以使任何颜色 alpha 透明度更明显。

css
svg {
  background-image: repeating-linear-gradient(
    45deg,
    transparent 0 9px,
    #cccccc 0px 10px
  );
}

rect {
  width: 100px;
  height: 100px;
  x: 10px;
  y: 10px;
}

#r2 {
  x: 150px;
}

然后,我们使用 CSS lighting-color 属性将不同的光照颜色值应用于滤镜的子元素。我们使用了命名颜色和三位十六进制颜色,但我们可以使用任何有效的 CSS 颜色语法。

css
feDiffuseLighting {
  lighting-color: blue;
}

feSpecularLighting {
  lighting-color: #ff0099;
}

结果

属性将两个光滤镜的颜色定义为 red,但这些值被 CSS lighting-color 值覆盖了。

规范

规范
滤镜效果模块第 1 级
# LightingColorProperty

浏览器兼容性

另见