html - 将内部 div 不透明度设置为 1,但不受影响

标签 html css

我有一个带有背景图像和背景颜色的 div。我将这个 div 的不透明度设置为 0.7。在那之后,我在这个 div 内部做了一个内部 div,但我不想给这个 div 赋予不透明度。

这是我的CSS代码:

#outer{
position:relative; 
box-shadow: 10px 10px 5px #888888; 
border-radius: 25px;
opacity: 0.7;
border-style:inset; 
border-width: 2px; 
margin:auto; 
width: 1000px; 
height:inherit; 
background-color: rgba(255, 255, 255, 0.4);
background-image:url(../Content/Images/Logo.png);
background-size: 770px 680px;
background-repeat: no-repeat;
display: block;
margin-left: auto;
margin-right: auto;
background-position: center;
}

#inner{
position: absolute;
opacity: 1;
background-color: red;
width: 100px;
height: 100px;
}

它不起作用,内部 div 也受外部 div 的不透明度影响。我该怎么做?

最佳答案

当然。您的父级的不透明度为 0.7,因此内部的每个元素都会看到 opacity: 1 等于父级的不透明度。

Example 1

#outer, #inner {
  height: 100px;
  padding: 20px;
  width: 100px;
}

#outer {
  background: #000;
  opacity: 0.7;
}

#inner {
  background: #f00;
  opacity: 1.0;
}
<div id="outer">
  <div id="inner"></div>
</div>

要解决此问题,请将 #inner 元素移到 #outer 元素之外,并将其放置在 #outer 元素之上.

Example 2

#wrapper {
  position: relative;
}

#outer, #inner {
  height: 100px;
  padding: 20px;
  width: 100px;
}

#outer {
  background: #000;
  opacity: 0.7;
}

#inner {
  background: #f00;
  position: absolute;
  top: 20px;  /* These values are based on the padding to offset correctly. */
  left: 20px;
}
<div id="wrapper">
  <div id="outer"></div>
  <div id="inner"></div>
</div>

显然,在这种情况下,您可能希望将 #inner#outer 重命名为更相关的名称。

关于html - 将内部 div 不透明度设置为 1,但不受影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27818804/

相关文章:

javascript - CSS 的 iOS Safari 滚动问题

javascript - 为什么这个改变背景颜色的javascript代码不起作用?

javascript - 函数需要点击 2 次才能显示隐藏的 div

javascript - 使用 Google Apps 脚本操作 DOM

javascript - 如何在 Javascript 中获取图像的中心?

javascript - 如何将字符串列表附加到div?

html - 如何水平和垂直显示多个复选框 css

html - 在中间垂直对齐文本

javascript - 为单击按钮时出现的数组中的每个项目创建一个 div

html - 媒体查询有问题,没有任何反应