gpt4 book ai didi

css - 我怎样才能创建一个适用于 CSS 渐变的 mixin?

转载 作者:行者123 更新时间:2023-11-28 13:27:06 24 4
gpt4 key购买 nike

我的代码中有以下内容:

    background: -moz-linear-gradient(
top,
white,
#e5e5e5 88%,
#d8d8d8
);
background: -webkit-gradient(
linear,
left top, left bottom,
from(white),
to(#d8d8d8),
color-stop(0.88, #e5e5e5)
);

background: -moz-linear-gradient(
top,
#8b8b8b,
#a9a9a9 10%,
#bdbdbd 30%,
#bfbfbf
);
background: -webkit-gradient(
linear,
left top, left bottom,
from(#8b8b8b),
to(#bfbfbf),
color-stop(0.1, #a9a9a9),
color-stop(0.3, #bdbdbd)
);

我想将它们实现为一个 mixin 并减少使用。不过我好像为此需要两个混合。有人可以解释我如何做到这一点以及什么执行此操作的两个 mixin 看起来像。对不起,如果这个问题有点简单但是我刚开始使用 mixins,我正在尝试了解对它们进行编码的方式。

最佳答案

uses pattern matching ,所以你是正确的,它可能需要两个混合(一个停一站,另一个停两站)。下面的代码演示了这一点(它可能会进一步减少,但这使得正在发生的事情非常明显)。请注意“名称”是如何相同的(在我的例子中,setTopGradient),但变量的数量不同。

更正:您的问题显示您对webkit 停止使用小数,但根据this page 没有必要这样做.所以我已经更新以下代码以仅显示百分比。

.setTopGradient(@startClr, @endClr, @st1Clr, @st1Pos) {

background: -moz-linear-gradient(
top,
@startClr,
@st1Clr @st1Pos,
@endClr
);

background: -webkit-linear-gradient(
linear,
left top,
left bottom,
from(@startClr),
to(@endClr),
color-stop(@st1Pos, @st1Clr)
);
}

.setTopGradient(@startClr, @endClr, @st1Clr, @st1Pos, @st2Clr, @st2Pos) {

background: -moz-linear-gradient(
top,
@startClr,
@st1Clr @st1Pos,
@st2Clr @st2Pos,
@endClr
);

background: -webkit-linear-gradient(
linear,
left top,
left bottom,
from(@startClr),
to(@endClr),
color-stop(@st1Pos, @st1Clr),
color-stop(@st2Pos, @st2Clr)
);
}

.someClass1 {
.setTopGradient(white, #d8d8d8, #e5e5e5, 88%);
}
.someClass2 {
.setTopGradient(#8b8b8b, #bfbfbf, #a9a9a9, 10%, #bdbdbd, 30%);
}

CSS 输出

.someClass1 {
background: -moz-linear-gradient(top, #ffffff, #e5e5e5 88%, #d8d8d8);
background: -webkit-linear-gradient(linear, left top, left bottom, from(#ffffff), to(#d8d8d8), color-stop(88%, #e5e5e5));
}
.someClass2 {
background: -moz-linear-gradient(top, #8b8b8b, #a9a9a9 10%, #bdbdbd 30%, #bfbfbf);
background: -webkit-linear-gradient(linear, left top, left bottom, from(#8b8b8b), to(#bfbfbf), color-stop(10%, #a9a9a9), color-stop(30%, #bdbdbd));
}

关于css - 我怎样才能创建一个适用于 CSS 渐变的 mixin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14039131/

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