You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS透明度Bug:为何article元素呈现透明状态?

解决CSS中article元素意外透明的问题

问题根源

你给body设置了opacity: 0.8,这个属性会传递给所有子元素,包括article。哪怕article本身没设置opacity,也会继承这个透明效果,导致它看起来是透明的。

解决方案

把body的opacity替换为背景色的rgba值,这样只会让body的背景半透明,不会影响子元素:

修改后的CSS代码

body {
  /* 用rgba设置背景色的透明度,代替全局opacity */
  background-color: rgba(0, 0, 0, 0.8);
  background-image: linear-gradient(30deg, #FFF8E7 12%, transparent 12.5%, transparent 87%, #FFF8E7 87.5%, #FFF8E7), linear-gradient(150deg, #FFF8E7 12%, transparent 12.5%, transparent 87%, #FFF8E7 87.5%, #FFF8E7), linear-gradient(30deg, #FFF8E7 12%, transparent 12.5%, transparent 87%, #FFF8E7 87.5%, #FFF8E7), linear-gradient(150deg, #FFF8E7 12%, transparent 12.5%, transparent 87%, #FFF8E7 87.5%, #FFF8E7), linear-gradient(60deg, #FFF8E777 25%, transparent 25.5%, transparent 75%, #FFF8E777 75%, #FFF8E777), linear-gradient(60deg, #FFF8E777 25%, transparent 25.5%, transparent 75%, #FFF8E777 75%, #FFF8E777);
  background-size: 44px 77px;
  background-position: 0 0, 0 0, 22px 39px, 22px 39px, 0 0, 22px 39px;
}

article {
  background-color: #FFF8E7;
}

为什么这样有效?

  • opacity属性会让整个元素(包括所有子元素)都呈现透明效果,是全局的。
  • rgba()只作用于背景色本身,子元素不会继承这个透明度,article就能保持原本的纯色背景了。

内容的提问来源于stack exchange,提问作者myntti_works

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 15:28:15