使用带有rgba的CSS变量来实现渐变透明度

时间:2015-04-12 16:03:36

标签: css css-variables

在指定具有透明度的渐变颜色时,有没有办法使用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));
}

1 个答案:

答案 0 :(得分:15)

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

如果您只是想将alpha组件应用于现有RGB三元组,则可以specify the entire triplet as a comma-separated list of decimal values而不是十六进制值,并将其直接替换为rgba()函数作为单个不透明的令牌:

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

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

如果要使用rgba()指定和控制单个R,G和B值,则需要为每个颜色分量指定一个变量作为十进制值,并引用{{1}中的每个变量像这样的函数:

rgba()