基本CSS - 如何在顶部覆盖半透明DIV的DIV

TM2*_*M23 65 html css

我很难在我的浏览器(Chrome)中进行渲染.我有一个包含HTML的所有元素的包装器,我希望有一个DIV(让我们称之为div-1)来保存图像,并且在它的左上方有一个叠加div,就像我在这里勾画的那样图片...任何快速解决方案?

div bg with overlay semi transparent div

mar*_*end 135

这是一个纯粹的CSS解决方案,类似于DarkBee的答案,但不需要额外的.wrapperdiv:

.dimmed {
  position: relative;
}

.dimmed:after {
  content: " ";
  z-index: 10;
  display: block;
  position: absolute;
  height: 100%;
  top: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.5);
}
Run Code Online (Sandbox Code Playgroud)

我在这里使用rgba,但是如果你愿意的话,你当然可以使用其他透明方法.

  • 太棒了.如果要单击到基础元素,请添加规则指针-events:none; 到后元素css规则 (4认同)
  • @Onkar 您可以尝试将 `pointer-events: none;` 添加到 `.dimmed:after` 选择器中。另请参阅 http://stackoverflow.com/questions/1009753/pass-mouse-events-through-absolutely-positioned-element。请让我们知道它是否适用于此特定用例。 (2认同)

Gen*_*ham 22

使用CSS3,您无需使用透明度制作自己的图像.

只需要一个div与以下

position:absolute;
left:0;
background: rgba(255,255,255,.5);
Run Code Online (Sandbox Code Playgroud)

背景中的最后一个参数(.5)是透明度级别(更高的数字更不透明).

示例小提琴


Dar*_*Bee 15

.foo {
   position : relative;
}
.foo .wrapper {
    background-image : url('semi-trans.png');
    z-index : 10;
    position : absolute;
    top : 0;
    left : 0;
}

<div class="foo">
   <img src="example.png" />
   <div class="wrapper">&nbsp;</div>
</div>
Run Code Online (Sandbox Code Playgroud)


And*_*ohn 9

对于div-Element,您可以通过类设置不透明度以启用或禁用效果.

.mute-all {
   opacity: 0.4;
}
Run Code Online (Sandbox Code Playgroud)


小智 5

就像之前的答案一样,但我之前只是为了堆叠目的而放置::.如果你想在叠加层上包含文本(一个常见的用例),使用:: before将解决这个问题.

.dimmed {
  position: relative;
}

.dimmed:before {
  content: " ";
  z-index: 10;
  display: block;
  position: absolute;
  height: 100%;
  top: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.5);
}
Run Code Online (Sandbox Code Playgroud)