- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我知道你会写...
background-color: #ff0000;
...如果你想要红色的东西。
你可以写...
background-color: rgba(255, 0, 0, 0.5);
...如果您想要红色和半透明的东西。
有没有什么简洁的方法可以用十六进制来写部分透明的颜色?我想要这样的东西:
background-color: #ff000088; <--- the 88 is the alpha
……或者……
background-color: #ff0000 50%;
我得到的所有颜色都是十六进制的,必须将它们全部转换为十进制的 0-255 比例很烦人。
最佳答案
三周前(2014 年 12 月 18 日) CSS Color Module Level 4 editor's draft 已提交给 CSS W3C 工作组。尽管处于极易发生变化的状态,但文档的当前版本暗示在某种不久的将来,CSS 将同时支持 4 位和 8 位十六进制 RGBA 表示法。
注意:以下引述删去了不相关的部分,并且在您阅读本文时来源可能已经过大量修改(如上所述,这是编辑草稿而非最终文档)。
如果情况发生重大变化,请发表评论让我知道,以便我更新此答案!
§ 4.2. The RGB hexadecimal notations: #RRGGBB
The syntax of a
<hex-color>
is a<hash-token>
token whose value consists of 3, 4, 6, or 8 hexadecimal digits. In other words, a hex color is written as a hash character, "#", followed by some number of digits0-9
or lettersa-f
(the case of the letters doesn’t matter -#00ff00
is identical to#00FF00
).8 digits
The first 6 digits are interpreted identically to the 6-digit notation. The last pair of digits, interpreted as a hexadecimal number, specifies the alpha channel of the color, where
00
represents a fully transparent color andff
represent a fully opaque color.Example 3
In other words,#0000ffcc
represents the same color asrgba(0, 0, 100%, 80%)
(a slightly-transparent blue).4 位数字
这是 8 位表示法的较短变体,与 3 位表示法的“扩展”方式相同。第一个数字,解释为十六进制数,指定颜色的红色 channel ,其中
0
代表最小值,f
代表最大值。接下来的三位数字分别代表绿色、蓝色和 alpha channel 。
这意味着假设这没有从 Level 4 文档中完全删除,我们很快就能定义我们的 RGBA 颜色(或 HSLA 颜色,如果你是那些人中的一员) ) 在支持 Color Module Level 4 语法的浏览器中以十六进制格式显示。
elem {
background: rgb(0, 0, 0); /* RGB notation (no alpha). */
background: #000; /* 3-digit hexadecimal notation (no alpha). */
background: #000000; /* 6-digit hexadecimal notation (no alpha). */
background: rgba(0, 0, 0, 1.0); /* RGBA notation. */
/* The new 4 and 8-digit hexadecimal notation. */
background: #0000; /* 4-digit hexadecimal notation. */
background: #00000000; /* 8-digit hexadecimal notation. */
}
抛开所有笑话:目前只是 2015 年初,因此在相当长的一段时间内,任何浏览器都不会支持这些 - 即使您的产品仅设计用于最先进的- 最新的浏览器,您可能不会在短期内在生产浏览器中看到这一点。
View current browser support for #RRGGBBAA color notation
然而,也就是说,CSS 的工作方式意味着我们今天就可以真正开始使用它们了!如果你真的想现在就开始使用它们,只要你添加回退,任何不支持的浏览器都会简单地忽略新属性,直到它们被认为有效:
figure {
margin: 0;
padding: 4px;
/* Fall back (...to browsers which don't support alpha transparency). */
background: #FEFE7F;
color: #3F3FFE;
/* Current 'modern' browser support. */
background: rgba(255, 255, 0, 0.5);
color: rgba(0, 0, 255, 0.75);
/* Fall... foward? */
background: #ffff007F; /* Or, less accurately, #ff08 */
color: #0000ffbe; /* Or #00fc */
}
<figure>Hello, world!</figure>
只要您在支持 background
的浏览器上查看此答案和 color
CSS 中的属性,<figure>
上述代码片段结果中的元素看起来与此非常相似:
在 Windows 上使用最新版本的 Chrome (v39.0.2171) 检查我们的 <figure>
元素,我们将看到以下内容:
6 位十六进制回退被 rgba()
覆盖值,我们的 8 位十六进制值将被忽略,因为它们当前被 Chrome 的 CSS 解析器视为无效。只要我们的浏览器支持这些 8 位数的值,它们就会覆盖 rgba()
更新 2018-07-04:Firefox、Chrome 和 Safari 现在支持这种表示法,Edge 仍然缺失但可能会跟进(https://caniuse.com/#feat=css-rrggbbaa)。
关于CSS 十六进制 RGBA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7015302/
在 golang 颜色包中,有一种方法可以从 RGBA 中获取 r,g,b,a 值对象: func (c RGBA) RGBA() (r, g, b, a uint32) { r = uint
我有一个 OpenGL RGBA 纹理,并使用帧缓冲区对象将另一个 RGBA 纹理传输到它上面。问题是,如果我使用通常的混合函数 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MI
假设我有: 和一些CSS: .dark {background:rgba(10,10,10,0.8);} .lite {background:rgba(200,200,200,0.5)
我正在寻找一种更有效的方法,将在预乘色彩空间中存储为 double 的 RGBA 转换为 8 位整数/ channel RGBA 非预乘色彩空间。这对我的图像处理来说是一项巨大的成本。 对于一个 ch
我需要将 PNG H*W*4 rgba 图像转换为形状为 H*W*3 的 rgb 图像. 我可以做到这一点,但是当我保存它时,图像会再次保存为H*W*4这是代码片段: for idx, image i
我有一个 SCSS 文件,这里是它的一部分。SCSS: $red: 200; $green: 200; $blue: 200; $opa: 1; .th-layout-class{ backg
我尝试使用 libpng 库,但遇到了问题。 我现在正在使用 CLion,并尝试在我的项目中包含这个 libpng 库。问题在于配置该库以在我的项目中使用它而不是使用该库。我认为我可以将 libpng
csslint 警告回退背景(十六进制或 RGB)应该在 RGBA 背景之前。"evidence="background: rgba(0, 0, 0, 0.8);/* FF3+,Saf3+,Opera
你应该使用 rgba(0, 0, 0, 0) 还是 rgba(255, 255, 255, 0) 在 CSS 中实现透明度? 各自的优缺点是什么? 最佳答案 rgba() 函数的最后一个参数是“alp
掩码 CSS #mask { background-color: rgba(0, 0, 0, 0.8); position: fixed; left: 0; top:
我现在有类型不清楚的图片,他可能是jpeg gif,我想将其转换为image.Image,我该怎么办? 下面是我的代码 func imageToPng(img image.Image) (image.
我正在尝试创建导航栏,当用户不在页面顶部时,该导航栏会淡出至 80% 的不透明度。我已经设法让滚动和相应的 CSS 更改正常工作,但我不确定是否会褪色。我尝试过 .fadeTo() ,它似乎将不透明度
我必须自定义一个 iOS 应用,指南说: Please don’t use RGBA values in 0 to 255 decimal notation, but use 0.0 to 1.0 a
HTML 代码: Hello CSS 代码: .item img:hover { background: rgba(0, 0, 0, 0.8) } 当我将鼠标悬停在图像上
我在深色背景上为字母添加了 rgba 颜色,并且在 Chrome (67) 中它周围有一个非常小的白色轮廓。我强加了一个 outline: none 但没有任何改变。 body { backgrou
我想通过 CCS3 创建简单的悬停效果,例如默认图像是黑白的,但是当我悬停到该图像时,将显示该图像的实际颜色。 请帮帮我 最佳答案 您可以使用新属性 filter 但浏览器支持不是很深(参见 http
我正在尝试创建一个与图像大小完全匹配的背景颜色叠加层,并在该叠加层上显示文本。但是背景颜色也覆盖了文字,希望有人帮我解决这个问题。 HTML
我想创建像这张图片这样的输入 enter image description here 我从 stackoverflow 看到了这个链接 Skew Input Border Without Skewi
问题是 rgba 透明度。我应该改变它的背景并使其透明。但是,它只是改变了背景颜色,并没有使其透明。 我经常遇到这个问题,有时有效,有时无效。 我试图弄清楚为什么有时它不起作用,即使我的编码方式与其他
我只是想为图像添加背景颜色 (rgba),但不起作用。 我的 CSS 是: section{ width:100%; height:400px; background: url(../img/back
我是一名优秀的程序员,十分优秀!