css - 如何将两种特定颜色之间的阶梯式渐变生成为单独的类

标签 css colors sass

我需要帮助弄清楚如何使用 SASS 和可用的颜色函数将两种特定颜色之间的阶梯渐变创建为单独的类。

从任何给定的颜色开始,例如 #f1a100 和结束颜色 #2ec3fb,生成几个类,它们是两者之间的阶梯式渐变。

enter image description here

我从这段代码开始,但显然不会产生预期的结果。如何在两种特定颜色之间切换?

$startColor: #f1a100;
@for $i from 1 through 8 {
    &.m#{$i} {
        background: adjust-hue($startColor, 0 - ($i * 10));
    }
}

此代码产生以下结果:

enter image description here

最佳答案

找到 this公式错误(将200改为255),修改为:

div {
    $startColor: #f1a100;
    $endColor: #2ec3fb;
    $divider: 255;
    $steps: 10;
    $scaler: $divider / $steps;
    @for $i from 1 through $steps {
        $scaledStep: $i * $scaler;
        $redStart: red($startColor);
        $greenStart: green($startColor);
        $blueStart: blue($startColor);
        $redEnd: red($endColor);
        $greenEnd: green($endColor);
        $blueEnd: blue($endColor);
        $R: ($redStart * (($divider - $scaledStep) / $divider)) + ($redEnd * ($scaledStep / $divider));
        $G: ($greenStart * (($divider - $scaledStep) / $divider)) + ($greenEnd * ($scaledStep / $divider));
        $B: ($blueStart * (($divider - $scaledStep) / $divider)) + ($blueEnd * ($scaledStep / $divider));

        &.m#{$i} {
            background: rgb($R, $G, $B);
        }
    }
}

这会在 SASS 中的两种特定颜色之间产生正确的阶梯渐变:

enter image description here

关于css - 如何将两种特定颜色之间的阶梯式渐变生成为单独的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18797554/

相关文章:

css - Gulp乱序编译sass

javascript - 如何使用滚动模糊元素,直到它模糊到某个点?

css - 在拖动时旋转 CSS 3D 生成的立方体

jquery - 更改 jquery ui 按钮集中单选按钮的颜色

vb.net - 为什么饱和度和色调的最大值分别为 240 和 239?

css - 如何从另一个sass文件@extend,或者如何实现OOSASS?

css - 如何一次处理多个 SASS map ?

jquery - 如何避免打印为 pdf 时固定 div 的重叠?

html - Dash - dbc.container Fluid = True 不覆盖所有可用空间

r - 从ggplot2中提取颜色信息?