【问题标题】:Twitter bootstrap hex to rgba?Twitter引导十六进制到rgba?
【发布时间】:2012-09-16 20:45:14
【问题描述】:

让一个color变量用在sheet.less中。

颜色是十六进制格式#f57e20

我想使用那个颜色,但要给它添加一个 alpha 通道。

我想以rgba(245, 126, 32, 0.5)结束

Bootstrapless 有什么相关的吗?

【问题讨论】:

    标签: css twitter-bootstrap less alpha


    【解决方案1】:

    您可以使用less.js 中的一些内置函数Bootstrap中的mixins

    这是一个less.js 函数:

    // using a variable
    
    @color: #f57e20;
    
    .test {
      background: fade(@color, 50%); // return @color with 50% transparency
    }
    
    // or without the color variable
    
    .test2 {
      background: fade(#f57e20, 50%); // return @color with 50% transparency
    }
    

    这些都导致:

    .test {
      background: rgba(245, 126, 32, 0.5);
    }
    .test2 {
      background: rgba(245, 126, 32, 0.5);
    }
    

    或者使用 Bootstrap 混合:

    .test3 {
      #translucent > .background(#f57e20, 0.5); // use HSLA mixin
    }
    

    结果:

    .test3 {
      background-color: rgba(244, 123, 31, 0.5);
    }
    

    我将在此处包含 translucent mixins 的(固定)代码以用于存档目的,因为(我上次检查)它不再包含在 Bootstrap 3.0.0: p>

    // Add an alphatransparency value to any background or border color (via Elyse Holladay)
    #translucent {
      .background(@color: @white, @alpha: 1) {
        background-color: fade(@color, @alpha);
      }
      .border(@color: @white, @alpha: 1) {
        border-color: fade(@color, @alpha);
        .background-clip(padding-box);
      }
    }
    

    【讨论】:

      【解决方案2】:

      你不妨试试:

      background: rgba(red(@color), green(@color), blue(@color), @alpha);
      

      在编写使用 box-shadow 的快速 mixin 时,我不得不做类似的事情。

      【讨论】:

      • 在没有任何 mixin 的情况下工作得很好!引导程序 3.3。
      • @el-teedee 不,因为这种臃肿的rgba(red(@color), green(@color), blue(@color), @alpha) 与公认答案的正确fade(@color, @alpha); 相比具有没有优势。
      • @seven-phases-max 这是我看到的优势:我使用background-color: rgba(red(@color), green(@color), blue(@color), @opacity); 成功获得了我的alpha 背景,因为我的框架使用Bootstrap,但不是less.js 进行编译,因此得到异常@987654326 @ 当使用 fade(@color, @opacity); 时。听起来像我的优势;)
      • @el-teedee - fade 函数是 Less 语言的一部分。如果您的框架不支持它,那么它与 Less 无关。因此,这只是你那里的一些异国情调的东西,它几乎不能指导接受或不接受哪个答案。
      • 抱歉,第一次尝试时出错。我终于以fade 结束,毫无例外地用@myColor: fade(red, 30%); .myMixin ( @color: transparent; @opacity: 80%) { background-color: @color; } .myComponent1() { .myMixin(@color1, 70%); } .myComponent2() { .myMixin(@color2, 40%); } 总结了
      猜你喜欢
      • 2019-08-12
      • 2012-06-20
      • 2014-03-05
      • 1970-01-01
      • 2017-06-02
      • 2019-01-20
      • 2011-12-09
      • 2020-10-21
      • 2018-07-26
      相关资源
      最近更新 更多