在CSS中,是否可以通过颜色名称加上透明度值来定义颜色?
例如:
#mytext { color: red 0.5 }
不要使用rgba,而是选择其他方法
#mytext { color: rgba(255,0,0,0.5) }
在CSS中,是否可以通过颜色名称加上透明度值来定义颜色?
例如:
#mytext { color: red 0.5 }
不要使用rgba,而是选择其他方法
#mytext { color: rgba(255,0,0,0.5) }
不行。截至2020年,CSS颜色规范只允许以下方式指定颜色:
#rrggbb
)#rgb
)rgb(r,g,b)
表示法(使用百分比或0-255数字)#rrggbbaa
)rgba(r,g,b,a)
表示法(请注意,CSS4要求rgb
接受4个参数,但不是所有浏览器都支持),请注意,a
范围为0-1.0
而不是0-255
。hsl(h,s,l)
hsla(h,s,l,a)
每个选项都是互斥的。
颜色名称在CSS1.x时期比现在更有用,因为命名的颜色(除了orange
)都是旧的“16色”显示调色板的成员,并且通常在今天看起来很丑。
如果您想使用颜色名称来提高可读性,请使用注释,例如:
color: rgb(0,0,0,0.5); /* semi-transparent black */
#mytext{
color: red;
opacity: 0.5;
}
background-color: color-mix(in srgb, red 30%, transparent);
// Same as above
background-color: color-mix(in srgb, red, transparent 70%);
// 50% is the default
background-color: color-mix(in srgb, red, transparent);
// You can also mix standard colors
background-color: color-mix(in srgb, #ff0000 40%, #00aaff);
div {
display: inline-block;
height: 50px;
width: 50px;
}
.a {
background-color: color-mix(in srgb, red 30%, transparent);
}
.b {
background-color: color-mix(in srgb, red, transparent 70%);
}
.c {
background-color: color-mix(in srgb, red, transparent);
}
.d {
background-color: color-mix(in srgb, #ff0000 40%, #00aaff);
}
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>
文档
我可以使用吗(受主流浏览器支持)
虽然sass中有这样的方法,但最好将其转换为十六进制数字/rgb,然后相应地添加alpha值。
可以试试这样:
background-color: rgba($scssNamedColor, 0.5);