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

嵌套div显示异常:置于带opacity的div上方的div无法正常显示

问题:带opacity属性的div上方的子div无法正常显示

我有一份示例代码在在线代码编辑器上,这是一个书单页面,目前遇到的问题是:放在带有opacity属性的div上方的子div无法正常显示。我喜欢编写HTML,但水平有限,这个问题看似简单,但求助他人也没能解决,而且页面代码较多不便全部粘贴。另外页面的标签部分是朋友用SVG写的,他现在休假无法咨询。

我尝试了以下样式调整,但没有效果:

.opaq {
    padding: 4.5rem 0 0 0;
    background-color: rgb(255, 255, 255 / .6);
    opacity: 0.6;
}
.solid {
    padding: 4.5rem;
    margin: 0 4.5rem 4.5rem 4.5rem;
    background-color: white;
}
.main {
    padding: 4.5rem;
    font-style: normal;
    text-align: left;
    color: black;
    font-family: 'solway', serif;
    font-size: 2.75rem;
    line-height: 1.08;
    font-weight: bold;
}

对应的HTML片段:

<div class="content-area">
<!-- 所有内容(包括表格)都放在这里,会显示在图片上方 -->

<div class="tile">
<div class="opaq">
<div class="solid">
<div class="leadb">
八位<br>
历史悬疑<br>
作家</div>
<div class="leadc">
作者:semicodin
</div>

解决方案

问题核心在于你给.opaq设置了opacity: 0.6——这个CSS属性会让整个元素及其所有子元素都继承半透明效果,哪怕子元素设置了纯白色背景,也会被父元素的透明度影响,导致看起来不是完全不透明的状态。

只需要做一个简单修改:移除.opaq的opacity属性,保留背景色的半透明设置即可。你已经用rgb(255, 255, 255 / .6)实现了背景的半透明,这个写法只会让背景色半透明,不会影响子元素的透明度。

修改后的.opaq样式:

.opaq {
    padding: 4.5rem 0 0 0;
    background-color: rgb(255, 255, 255 / .6);
    /* 移除这一行:opacity: 0.6; */
}

调整后,.solid的白色div就能正常显示完全不透明的状态,不会再被父元素的透明度干扰。


内容的提问来源于stack exchange,提问作者semicodin no.cache

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 15:31:09