让孩子的不透明度与CSS的父不透明度不同

Mic*_*ael 2 html css

这是我的box课程

.rectangle-box {
    width: 200px;
    height: 30px;
    background: #808080;
    opacity: 0.3;
    float: right;
}

.rectangle-red {
    width: 65px;
    height: 30px;
    background: #ff4742;
    opacity: 1;
    float: left;
}
Run Code Online (Sandbox Code Playgroud)

在HTML中:

<div class="rectangle-box">
    <div class="rectangle-red"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

演示:https://jsfiddle.net/uq6ectfc/1/

我需要rectangle-red有混浊1及rectangle-box的0.3.但它坚持父母的不透明.

我该如何解决?

Vit*_*des 9

你不能不能opacity超过父母

但你可以使用两种方法

我用过rgba rgba(0,0,0,0.0)

.rectangle-box {
  width: 200px;
  height: 30px;
  background: rgba(128, 128, 128, 0.3);
  float: right;
  position: relative;
}

.rectangle-red {
  width: 65px;
  height: 30px;
  background: #ff4742;
  opacity: 1;
  float: left;
}
Run Code Online (Sandbox Code Playgroud)
<div class="rectangle-box">
  <div class="rectangle-red"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

或者我用第二种方法:pseudo添加了一个元素background

.rectangle-box {
  width: 200px;
  height: 30px;
  float: right;
  position: relative;
}

.rectangle-box:after {
  content: '';
  opacity: 0.3;
  background: #808080;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index:-1;
}

.rectangle-red {
  width: 65px;
  height: 30px;
  background: #ff4742;
  opacity: 1;
  float: left;
}
Run Code Online (Sandbox Code Playgroud)
<div class="rectangle-box">
  <div class="rectangle-red"></div>
</div>
Run Code Online (Sandbox Code Playgroud)


Ty *_* T. 5

使用RGBA而不是十六进制.使用不透明度:影响子元素,而rgba则不影响子元素

.rectangle-box {
        width: 200px;
        height: 30px;
        background-color: rgba(128,128,128, 0.3);
        float: right;

    }

    .rectangle-red {
        width: 65px;
        height: 30px;
        background-color: rgba(255,71,66, 1);
      float: left;
    } 
Run Code Online (Sandbox Code Playgroud)