我知道你可以写
背景色:#ff0000;
。。。如果你想要红色的东西
你可以写
背景色:rgba(255,0,0,0.5);
。。。如果你想要红色和半透明的东西
有没有简洁的十六进制书写部分透明颜色的方法?我想要像这样的东西:
背景色:ff000088<;--88是阿尔法
。。。或者
背景色:#ff0000 50%;
我得到的所有颜色都是十六进制的,必须将它们全部转换为十进制的0-255比例是很烦人的
CSS颜色模块级别4将可能支持4位和8位十六进制RGBA表示法
三周前(2014年12月18日),CSS颜色模块4级编辑草稿提交给CSS W3C工作组。尽管处于极易更改的状态,但文档的当前版本暗示,在不久的将来,CSS将支持4位和8位十六进制RGBA表示法
注意:下面的引文删去了不相关的部分,在您阅读本文时,源代码可能已被大量修改(如上所述,这是编辑的草稿,不是定稿文件)。
如果情况发生了重大变化,请留下评论让我知道,以便我可以更新此答案
§4.2。RGB十六进制符号:#RRGGBB
的语法<;十六进制颜色>是一个<;哈希令牌>由3、4、6或8个十六进制数字组成的标记。换句话说,十六进制颜色被写为散列字符“#”,后跟一定数量的数字0-9或字母a-f(字母大小写不重要-#00ff00与#00ff00相同)8位数字
前6位数字的解释与6位符号相同。最后一对数字(解释为十六进制数字)指定颜色的alpha通道,
00表示完全透明的颜色,ff表示完全不透明的颜色示例3
换句话说,#0000ffcc表示与rgba(0,0,100,80%)相同的颜色4位数字
这是8位表示法的一个较短的变体,与3位表示法的“扩展”方式相同。第一个数字(解释为十六进制数字)指定颜色的红色通道,
0表示最小值,f表示最大值。接下来的三位数字分别表示绿色、蓝色和alpha通道
这对CSS颜色的未来意味着什么
这意味着,假设没有从Level 4文档中完全删除,我们很快就能在支持颜色模块Level 4语法的浏览器中以十六进制格式定义RGBA颜色(或HSLA颜色,如果您是那些家伙之一)
范例
elem{
背景:rgb(0,0,0);/*rgb符号(无阿尔法)*/
背景:#000;/*3位十六进制表示法(无字母)*/
背景:#000000;/*6位十六进制表示法(无字母)*/
背景:rgba(0,0,0,1.0);/*rgba符号*/
/*新的4位和8位十六进制表示法*/
背景:#0000;/*4位十六进制表示法*/
背景:#00000000;/*8位十六进制表示法*/
}
我什么时候才能在面向客户的产品中使用它
所有笑话都放在一边:现在才是2015年的开始,因此在相当长的一段时间内,任何浏览器都不会支持这些功能-即使您的产品仅设计用于最新的浏览器,您也可能不会很快在产品浏览器中看到这些功能
查看当前浏览器对#RRGGBBAA颜色表示法的支持
然而,也就是说,CSS的工作方式意味着我们今天就可以开始使用它们了!如果您真的想现在就开始使用它们,只要您添加了一个后备选项,任何不支持的浏览器都会忽略这些新属性,直到它们被认为是有效的:
图{
保证金:0;
填充:4px;
/*后退(…到不支持alpha透明性的浏览器)*/
背景:#FEFE7F;
颜色:#3F3FFE;
/*当前的“现代”浏览器支持*/
背景:rgba(255,255,0,0.5);
颜色:rgba(0,0,255,0.75);
/*倒下,朝前*/
背景:#ffff007F;/*或者,不太准确地说,#ff08*/
颜色:#0000ffbe;/*或#00fc*/
}
<;图>;你好,世界</图>
只要您在支持CSS中的背景和颜色属性的浏览器上查看此答案,<;图>元素看起来非常类似:
在Windows上使用最新版本的Chrome(v39.0.2171)检查我们的<;图>元素,我们将看到以下内容:
6位十六进制后退被rgba()值覆盖,我们的8位十六进制值被忽略,因为它们目前被Chrome的CSS解析器视为无效。一旦我们的浏览器支持这些8位数的值,这些值将覆盖rgba()值
更新2018-07-04:Firefox、Chrome和Safari现在都支持这种标记,Edge仍然缺失,但可能会继续(https://caniuse.com/#feat=css-rrggbbaa)