弱化辅助说明、占位图、次要操作;弹层遮罩、Toast 背景、图层叠加氛围;过渡动画的淡入淡出。
产品与设计 · 排版与视觉样式
透明度Opacity
用有限透明度弱化次要信息和压暗遮罩,关键文字、状态和禁用语义用 rgba 通道与原生 disabled 单独承担。
不透明度实验台:给遮罩定一个值
任务是为「活动报名卡」的半透明遮罩定不透明度。拖动滑块看遮罩压暗,再切 opacity 整块与 rgba 背景两种写法,看确认文字是否跟着一起淡。结果长在遮罩与按钮物件上。
任务:这张「活动报名卡」上方压着一层半透明遮罩,遮罩里坐着「确认报名」文字。拖动遮罩不透明度,再切两种写法——看遮罩压暗程度,也看确认文字是否跟着一起淡。结果长在物件上:遮罩深浅、确认文字、候补按钮的禁用都直接变。
产品度量与迭代节奏
名额剩余 3 位 · 次要说明恒为 60%- 遮罩不透明度
- 50%
- 当前写法
- opacity 整块
- 确认文字
- 过淡 · 未通过
- 候补按钮
- 可点击
未通过。原因:opacity 作用在遮罩容器上,「确认报名」文字作为子元素被一起压到 50%,文字跟着变淡。 对照:切到rgba 背景写法,看确认文字是否随滑块一起淡。下一步:把滑块拉到 30%,看哪种写法下「确认报名」仍可读。
面板里读到的结论
刚才的遮罩深浅、确认文字和候补按钮,对应的是 opacity 的几条主线:整体变淡、rgba 通道、次要弱化、禁用语义、独立验收。
- opacity 作用于整块:元素连同子元素和文字作为一个整体等比变淡,不能只弱化某一段文字。
- 半透明背景配清晰文字要用 rgba/色彩通道:把透明度写进 background-color,而不是套在容器 opacity 上。
- 次要信息可弱化:辅助说明、占位图常落在 0.5–0.7;关键文字、错误/成功状态保持 1.0。
- opacity ≠ 禁用:禁用要原生 disabled 或 aria-disabled 加 not-allowed 指针,opacity 只是视觉提示。
- opacity:0 仍占位:元素不可见但保留布局且不响应;真隐藏要配合 visibility:hidden 或 display:none。
- 对比度要独立验收:透明层叠在复杂背景上时,前景文字与合成背景的对比须单独测,不能靠透明度补。
什么时候该动 opacity
看到次要信息抢主、需要遮罩聚焦、或要做图层氛围时用;正文可读性、禁用语义和关键状态别交给 opacity 单独承担。
正文段落、表单错误、成功徽章、主操作、禁用态的唯一线索——这些需要可读对比或语义承担,opacity 会拖垮它们。
怎么从需求走到透明度
从「这块东西要不要被读、要不要被看见」倒推写法,再在真实背景上复测。
- 先分主次:主文字、状态、主操作保持 1.0;只有辅助说明、占位、装饰层考虑弱化。
- 选写法:要半透明背景配清晰文字,优先 rgba/hsla 的背景通道;只有整块(含文字)一起淡时才用容器 opacity。
- 定数值:次要内容落在 0.5–0.7,遮罩按底层复杂度给 0.45–0.7,避免低于 0.4 当正文。
- 禁用单独处理:用 disabled/aria-disabled 加 not-allowed,opacity 仅作视觉收口。
- 在真实背景、深浅主题和高对比模式下复测文字对比,确认关键内容不因透明度消失。
盯这些关注点
调 opacity 时容易只盯「淡一点」,文字对比、禁用语义和 0 值占位更容易出问题。
- 盯文字对比:透明容器内的文字会被一起压淡,关键文字别套在低 opacity 容器里。
- 盯禁用语义:别用 opacity 单独表达禁用,行为和可达性由 disabled 承担。
- 盯 opacity:0:它仍占位、仍可能被读屏读出;要真隐藏配合 visibility/display 或 aria-hidden。
- 盯层叠背景:透明层压在图片、渐变上时,给文字一个稳定底色或独立对比验收。
同一张确认遮罩:正例与反例
目标都是让遮罩压暗底层、又让确认文字清晰。差异只在遮罩用 rgba 还是 opacity。
遮罩用 rgba(27,29,33,0.5):背景压暗 50%,确认文字保持完整不透明,仍清晰可读。
差异:只改了遮罩写法,文字不再跟着淡。遮罩用 opacity: 0.5:背景压暗的同时,确认文字作为子元素也被压到 50%,字色发灰、对比未通过。
差异:同样 50%,文字一起变淡。快速自测
你要做一个半透明深色遮罩,上面放白色「确认」文字。哪种写法能让背景压暗、文字仍清晰?
继续查证
术语的技术定义和行为以这些一手或权威资料为准。
下一步学
和本知识点经常一起出现的概念。