Basic CSS - how to overlay a DIV with semi-transparent DIV on top

前端 未结 5 1381
我寻月下人不归
我寻月下人不归 2020-12-04 17:43

I\'m struggling to make this render right in my browser (Chrome). I have a wrapper holding all the elements of the HTML, and I want to have a DIV (lets call it div-1) that h

相关标签:
5条回答
  • 2020-12-04 17:48

    Using CSS3 you don't need to make your own image with the transparency.

    Just have a div with the following

    position:absolute;
    left:0;
    background: rgba(255,255,255,.5);
    

    The last parameter in background (.5) is the level of transparency (a higher number is more opaque).

    Example Fiddle

    0 讨论(0)
  • 2020-12-04 18:03

    Here's a pure CSS solution, similar to DarkBee's answer, but without the need for an extra .wrapper div:

    .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);
    }
    

    I'm using rgba here, but of course you can use other transparency methods if you like.

    0 讨论(0)
  • 2020-12-04 18:04
    .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>
    
    0 讨论(0)
  • 2020-12-04 18:06

    Like the answer previous, but I'd put ::before, just for stacking purposes. If you want to include text over the overlay (a common use case), using ::before will should fix that.

    .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);
    }
    
    0 讨论(0)
  • 2020-12-04 18:08

    For a div-Element you could just set the opacity via a class to enable or disable the effect.

    .mute-all {
       opacity: 0.4;
    }
    
    0 讨论(0)
提交回复
热议问题