HTML内联样式不支持#RRGGBBAA或#RGBA语法,仅CSS中有效;现代浏览器支持该写法,但旧版IE等需用rgba()替代,且opacity会全局透明而rgba仅作用于指定属性。
直接写 #RRGGBBAA 或 #RGBA 在纯 HTML 的 color、background 等内联样式里**不会生效**——浏览器会当作无效值忽略。这是初学者最常踩的坑:复制了带 alpha 的 hex,粘贴到 style="color: #88888888;" 里,结果文字还是不透明。
现代浏览器(Chrome 65+、Firefox 49+、Safari 12+、Edge 79+)支持八位和四位十六进制颜色,但**只在 CSS 中有效**,且必须用在支持该语法的属性上(如 color、background-color、border-color),不能用于 HTML 的旧式 bgcolor 或 SVG 的部分属性。
#RRGGBBAA:8 位,前两位红、三四绿、五六蓝、七八透明度(00 完全透明,FF 完全不透明)#RGBA:4 位,每段一位十
六进制,R、G、B 各缩一位,A 是透明度(0=全透,F=不透)#RGBA 不是 #RGB + 单字母 alpha;它是独立语法,#f85a = rgb(255, 136, 85, 0.667),不是 rgb(255, 136, 85, 0.1)
body {
background-color: #ff6b6b4d; /* 淡珊瑚红,约30%不透明 */
}
div {
color: #00000080; /* 灰黑色文字,50%透明 */
}
button {
border-color: #3498dbcc; /* 蓝边,80%不透明 */
}IE11 及更早版本、Android 4.4 WebView、部分邮件客户端完全不识别 #RRGGBBAA。如果目标环境包含这些,必须退回到 rgba() 函数写法:
rgba(255, 136, 85, 0.3) 比 #ff88554d 兼容性好得多rgba(255,136,85,0x4d) ——那会报错opacity 代替:它会让整个元素及其子元素一起变透明,而 background-color: rgba() 只影响背景.card {
/* ✅ 推荐:仅背景半透,文字保持清晰 */
background-color: rgba(255, 255, 255, 0.9);
/* ❌ 避免:整个 card 变模糊,文字也淡了 */
opacity: 0.9;
}手动换算容易出错:比如把 “50% 透明” 直接当成 80(正确),却写成 50(那是 31% 不透明)。记住换算关系:
00(全透明)40(≈0.156)80(≈0.502)ff
推荐用在线工具临时验证,比如输入 rgba(128, 128, 128, 0.7),它会输出 #808080b3。别信“自动转 hex 透明”的浏览器插件——它们常把 alpha 当成十进制处理。