gpt4 book ai didi

CSS:由多个类定义的渐变?

转载 作者:太空宇宙 更新时间:2023-11-03 22:21:25 25 4
gpt4 key购买 nike

是否可以定义多个类,每个类都有一个背景色。那么当一个元素有多个这样的类时,背景会像渐变一样淡化吗?并在纯 css 中执行此操作(因为我已经有执行此操作的代码,但我想知道是否有更好的方法)?

.red {
background-color: red;
}

.green {
background-color: green;
}

.wantedResult{
background-image: linear-gradient(to right, red, green);
}
<div class="red">Red</div>
<div class="green">Green</div>
<div class="red green">Both</div>
<div class="wantedResult">WantedResult</div>

如您所见,“两者”元素仅显示其中一个背景。但它应该将两者都显示为渐变。

有什么办法吗?

注意:当然这是一个非常简单的例子,只有两种颜色,定义“wantedResult”类也没什么大不了的。但是,如果有十种使用过的颜色,它很快就会变得难以管理。

最佳答案

显然没有 CSS 方法可以直接实现这一点,因为浏览器无法知道当有 2 种或 3 种颜色时应该如何定义渐变。有很多可能性。

一种方法是考虑 CSS 变量以简化思考。这个想法是用一些默认颜色定义渐变,您可以通过更改变量来更改这些颜色。同样,这不会产生您想要的效果,但至少可以避免定义大量渐变。

.red_1 {
--color1: red;
}
.red_2 {
--color2: red;
}

.green_1 {
--color1: green;
}
.green_2 {
--color2: green;
}

.coloration{
background: linear-gradient(var(--color1,pink),var(--color2,pink));
}

div {
height:50px;
margin:5px;
}
<div class="coloration">default</div>

<div class="coloration green_1 green_2">green</div>

<div class="coloration red_1 green_2">green red</div>

<div class="coloration red_2 green_1">green red</div>

<div class="coloration red_2 red_1">red</div>

关于CSS:由多个类定义的渐变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53452933/

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