gpt4 book ai didi

html - 在 CSS 中渐变渐变

转载 作者:技术小花猫 更新时间:2023-10-29 12:31:59 25 4
gpt4 key购买 nike

我的问题是关于渐变渐变:渐变 - 从上到下,渐变 - 从左到右。

例子:

enter image description here

代码是:

background-image: 
linear-gradient(0deg, rgba(198,83,165,.95) 0%, rgba(198,86,51,.95) 100%),
linear-gradient(90deg, transparent 50%, rgba(0,0,0,.95) 100%);
opacity: 0.949;

我的结果如下。

enter image description here

如您所见,它不会淡化渐变,它看起来像单独的层,位于渐变后面。还有其他实现方法吗?

最佳答案

正如我在评论中提到的,当您在另一个渐变之上添加透明层时,它只会通过其下方的彩色渐变层显示(而不是容器中存在的图像)。因此,用渐变来实现这一目标将非常困难(几乎不可能)。

您必须使用蒙版图像来实现它。以下是使用 SVG mask 的片段。

div {
position: relative;
height: 300px;
width: 500px;
}
div svg {
position: absolute;
height: 100%;
width: 100%;
}
div .grad-fill {
fill: url(#grad);
mask: url(#masker);
}
<div>
<svg viewBox="0 0 500 300" preserveAspectRatio="none">
<defs>
<linearGradient id="grad" gradientUnits="objectBoundingBox" gradientTransform="rotate(270,0.5,0.5)">
<stop offset="0%" stop-color="rgba(198,83,165,.95)" />
<stop offset="100%" stop-color="rgba(198,86,51,.95)" />
</linearGradient>
<linearGradient id="mask-grad" gradientUnits="objectBoundingBox">
<stop offset="40%" stop-color="black" />
<stop offset="100%" stop-color="white" />
</linearGradient>
<mask id="masker" x="0" y="0" width="500" height="300">
<rect x="0" y="0" width="500" height="300" fill="url(#mask-grad)" />
</mask>
</defs>
<rect x="0" y="0" width="500" height="300" class="grad-fill" />
</svg>
<img src="http://lorempixel.com/500/300/animals/8" />
</div>

您可以在以下链接中找到有关 SVG 蒙版的更多信息:


这也可以用纯 CSS 来完成,但不幸的是 mask-image property is currently supported only by WebKit browsers因此不推荐这种方法。

div {
position: relative;
height: 300px;
width: 500px;
color: white;
}
div:after,
img {
position: absolute;
height: 100%;
width: 100%;
top: 0px;
left: 0px;
z-index: -1;
}
div:after {
content: '';
background-image: linear-gradient(0deg, rgba(198, 83, 165, .95) 0%, rgba(198, 86, 51, .95) 100%);
-webkit-mask-image: linear-gradient(90deg, transparent 40%, rgb(0, 0, 0) 100%);
}
<div>Some text
<img src="http://lorempixel.com/500/300/animals/8" />
</div>

关于html - 在 CSS 中渐变渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34824880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com