是否可以通过名称加上 alpha 透明度值在 CSS 中定义颜色?
IE:
#mytext { color: red 0.5 }
而不是像求助于 rgba
#mytext { color: rgba(255,0,0,0.5) }
是否可以通过名称加上 alpha 透明度值在 CSS 中定义颜色?
IE:
#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 */
(将注释放在分号之后,因为许多 CSS 编辑器仅在注释位于属性声明之外时才保留注释)。
CSS3 增加了更多的命名颜色,包括 24 位 X11 颜色集,以及hsl(h,s,l)
功能,但仍然不允许命名颜色和不透明度值的混合:http: //www.w3.org/TR/css3 -颜色/
您可以通过这种方式获得您想要的结果:
#mytext{
color: red;
opacity: 0.5;
}
请注意,不透明度会影响整个元素,而不仅仅是文本,因此,例如,如果#mytext 元素具有背景色,那么它也会收到 0.5 的不透明度值
但是,我同意 Dai 的观点,使用颜色名称而不是 hex 或 rgb 代码不是你应该过分依赖的东西。这是一个丑陋的调色板。
虽然 sass 中有这样的方法,但更喜欢转换为十六进制数字/rgb,然后相应地添加 alpha
试试这样:
background-color: rgba($scssNamedColor, 0.5);