将十六进制转换为RGBa以获得背景不透明度
我有以下Sass mixin,这是对RGBa示例的一个完整修改:
@mixin background-opacity($color, $opacity: .3) {
background: rgb(200, 54, 54); /* The Fallback */
background: rgba(200, 54, 54, $opacity);
}
我已经应用了$opacity
确定,但现在我坚持使用$color
部分。 我将发送到mixin的颜色将是HEX而不是RGB。
我的例子使用将是:
element {
@include background-opacity(#333, .5);
}
我如何在这个mixin中使用HEX值?
rgba()函数可以接受单个十六进制颜色以及十进制RGB值。 例如,这将工作得很好:
@mixin background-opacity($color, $opacity: 0.3) {
background: $color; /* The Fallback */
background: rgba($color, $opacity);
}
element {
@include background-opacity(#333, 0.5);
}
但是,如果您需要将十六进制颜色分解为RGB组件,则可以使用红色(),绿色()和蓝色()函数来执行此操作:
$red: red($color);
$green: green($color);
$blue: blue($color);
background: rgb($red, $green, $blue); /* same as using "background: $color" */
有一个内置的mixin: transparentize($color, $amount);
background-color: transparentize(#F05353, .3);
金额应该在0到1之间;
官方Sass文档(模块:Sass :: Script :: Functions)
SASS有一个内置的rgba()函数来评估值。
rgba($color, $alpha)
例如
rgba(#00aaff, 0.5) => rgba(0, 170, 255, 0.5)
一个使用你自己的变量的例子:
$my-color: #00aaff;
$my-opacity: 0.5;
.my-element {
color: rgba($my-color, $my-opacity);
}
输出:
.my-element {
color: rgba(0, 170, 255, 0.5);
}
链接地址: http://www.djcxy.com/p/87541.html
上一篇: Converting Hex to RGBa for background opacity
下一篇: Convert RGB to RGBA