一尘不染

将CSS变量与rgba一起使用以实现渐变透明度

css

指定带有透明度的渐变颜色时,是否可以使用CSS变量,例如

:root {
  --accent-color: #dfd0a5;
}

h1{
  background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(red(var(--accent-color)), green(var(--accent-color)), blue(var(--accent-color)), 1));
}

阅读 1040

收藏
2020-05-16

共1个答案

一尘不染

您可以使用变量,但不能从CSS中的单个十六进制值中采样各个红色,绿色和蓝色分量。

如果您只是想将alpha分量应用于现有的RGB三元组,则可以将整个三元组指定为用逗号分隔的十进制值列表,而不是十六进制值,并将其rgba()作为单个不透明标记直接替换为函数:

:root {
  --accent-color: 223, 208, 165;
}

h1 {
  background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(var(--accent-color), 1));
}

如果要使用来指定和控制各个R,G和B值rgba(),则需要为每个颜色分量指定一个变量作为十进制值,并在rgba()函数中引用每个变量,如下所示:

:root {
  --accent-red: 223;
  --accent-green: 208;
  --accent-blue: 165;
}

h1 {
  background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(var(--accent-red), var(--accent-green), var(--accent-blue), 1));
}
2020-05-16