代码之家  ›  专栏  ›  技术社区  ›  Classified

将渐变与scss颜色贴图一起使用-可能吗?

  •  1
  • Classified  · 技术社区  · 6 年前

    我正在使用Bootstrap 4,在为我的应用程序设置主题时,我想知道是否可以在 $theme-colors 地图

    用法示例

    $theme-colors: ( 
        "brand-gradient": background: -moz-linear-gradient(-45deg, #fff 0%, #000 100%);
    );
    

    所以如果我想要一个按钮是渐变的,我可以

    <button class="btn btn-brand-gradient">Test</button>

    然后,除了添加渐变外,还可以像往常一样为旧浏览器使用回退。

    只是个好奇的问题。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Cody MacPixelface    6 年前

    不幸的是,你不能。至少不能这样。

    这个 btn uses the values 从…起 $theme-colors 像这样:

    @each $color, $value in $theme-colors {
      .btn-#{$color} {
        @include button-variant($value, $value);
      }
    }
    

    这通常允许您使用该类 btn-brand-gradient 正如您所建议的,如果您将类添加到 $主题颜色

    如果你 take a look at the mixin button-variant() 您将看到它使用另一个名为 gradient-bg() 用于按钮背景和边框。

    在里面 this mixin ,背景设置如下:

    background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;
    

    这个 $color CSS中的参数 linear-gradient 必须是有效的 color value ,在这种情况下,不会出现线性渐变。