我想创建一个带有两个渐变的背景 - 彼此叠加。
我创建了以下示例,似乎我无法将多个渐变放在一起。 (该示例基于MDN-Using multiple backgrounds& MDN-gradient)
创建
.radial-gradient {
background: radial-gradient(red, yellow, rgb(30, 144, 255));
}
.linear-repeat {
background: repeating-linear-gradient(45deg,
blue, blue 5px, white 5px, white 10px);
}
.combined-gradient {
background: radial-gradient(red, yellow, rgb(30, 144, 255)),
repeating-linear-gradient(45deg, blue, blue 5px, white 5px, white 10px);
}

<div class="radial-gradient">radial gradient</div><br/>
<div class="radial-gradient linear-repeat">linear gradient</div><br/>
<div class="radial-gradient linear-repeat">combined gradient 1</div><br/>
<div class="combined-gradient">combined gradient 2</div>
&#13;
以下约束可能会阻止分层渐变:
只有最后一个背景可以包含背景颜色。
如果不允许将两个渐变层叠为背景,我应该如何以另一种方式对它们进行分层?
答案 0 :(得分:2)
我认为你要找的是这个。
您的代码有什么问题?
好吧,你的每一个gradient is non-transparent
都会完全重叠另一个,这就是为什么只有一个是可见的。解决方法是,make use of rgba(x,y,z,alpha)
为他们提供字母transparency
,使背景具有淡入淡出效果,以便彼此透视。
.combined-gradient1 {
background: repeating-linear-gradient(45deg, rgba(00, 00, 255, 0.8), rgba(00, 00, 255, 0.8) 5px, rgba(255, 255, 255, 0) 5px, rgba(255, 255, 255, 0) 10px), radial-gradient(rgba(255, 0, 0, 0.8), rgba(255, 255, 0, 0.8), rgba(30, 144, 255, 0.8));
}
.combined-gradient2 {
background: radial-gradient(rgba(255, 0, 0, 0.8), rgba(255, 255, 0, 0.8), rgba(30, 144, 255, 0.8)), repeating-linear-gradient(45deg, rgba(00, 00, 255, 1), rgba(00, 00, 255, 1) 5px, rgba(255, 255, 255, 0) 5px, rgba(255, 255, 255, 0) 10px);
}
<div class="combined-gradient1">combined gradient 1</div>
<br>
<div class="combined-gradient2">combined gradient 2</div>