rgba() 和 hsla() 的 alpha 参数必须用 0–1 小数,不可用百分比或整数;opacity 属性同理,但 filter: opacity() 同时支持小数和百分比。

rgba() 和 hsla() 的 alpha 参数必须用小数,不是百分比——写成 50% 或 50 都会直接失效。
rgba() 的 alpha 值填 0.5 才是半透明
- 浏览器只认
0–1范围内的小数,rgba(255, 0, 0, 0.5)✅;rgba(255, 0, 0, 50%)❌;rgba(255, 0, 0, 50)❌ - DevTools 里这条声明会被划掉,回退到默认色(通常是黑色或父级背景色)
-
alpha = 0.0表示完全透明(元素仍占位、可响应点击),alpha = 1.0等价于不带 alpha 的rgb()或十六进制色 - 小数位数不影响渲染:
0.7、.7、0.700效果一致,推荐写0.7更易读
hsla() 的 alpha 同样只接受小数
- 格式必须是
hsla(h, s%, l%, a),其中a是0–1小数,不能带% -
hsla(200, 70%, 50%, 0.4)✅;hsla(200, 70%, 50%, 40%)❌(旧版 Safari 可能直接忽略整条) - 斜杠语法
hsl(200 70% 50% / 0.4)在 Chrome 99+、Firefox 95+ 才稳定,老项目建议坚持逗号分隔
opacity 和 filter: opacity() 用小数还是百分比?
-
opacity属性值必须是0–1小数,opacity: 0.5✅;opacity: 50%❌(无效) -
filter: opacity(50%)✅(这里支持百分比);filter: opacity(0.5)✅(也支持小数) - 注意:
filter: opacity()不触发层叠上下文,而opacity会,这点在 z-index 失效时容易被忽略
真正容易踩的坑不是“该不该用小数”,而是把设计稿里的「50% 透明度」直接抄成 50% 或 50 ——所有带 alpha 的颜色函数都只吃小数,没商量。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











