2010-09-01 54 views

回答

1

你可以做它的其他方式,並使用兒童作爲這樣

HTML

<div id="stuff"><div class="overlay"></div> 
    <p> 
    Cras venenatis ornare tincidunt. Nam laoreet ante sed nibh pretium nec gravida turpis dapibus. Curabitur lobortis; lacus sit amet rutrum aliquet, est massa feugiat lectus, bibendum eleifend velit metus vitae dolor! Duis vulputate mi vitae quam fermentum pharetra. 
    </p> 
</div> 

CSS

#stuff{ 
    position:relative; 
    } 

.overlay{ 
    width:100%; 
    height:100%; 
    position:absolute; 
    top:0; 
    left:0; 
    background:#ACA; 
    opacity:0.4; 
    } 
0

這枚覆蓋並不一定適用於所有瀏覽器(特別是, cially舊的),下面爲我工作在過去的:

#child { 
    position: relative; 
    z-index: -1; 
    ... 
} 

我真的只是暗示這是最後的手段,仍傾向於使用除此之外的任何技術,儘管它可能是理想的在你的場景中。

13

爲什麼不呢?當然你可以,而且很容易:

  1. 給你想要的元素一個非靜態位置;
  2. 設置z-index的孩子到-1;
  3. 創建主容器上的堆疊內容(由 z-indexopacitytransforms在其上設置或whatelse生成合成 層)。

.container { 
 
    position: absolute; 
 
    z-index: 0; /* or eg. opacity: 0.99;*/ 
 
    
 
    background-color: blue; 
 
    color: lightblue; 
 
    width: 100%; 
 
    height: 100%; 
 
    text-align: center; 
 
} 
 

 
.parent { 
 
    position: relative; 
 
    
 
    background-color: rgba(100, 255, 150, 0.75); 
 
    color: green; 
 
    width: 50%; 
 
    height: 30%; 
 
    top: 30%; 
 
    left: 20%; 
 
} 
 

 
.child { 
 
    position: absolute; 
 
    z-index: -1; 
 
    
 
    background-color: orange; 
 
    color: yellow; 
 
    width: 100%; 
 
    height: 100%; 
 
    top: -50%; 
 
    left: 20%; 
 
}
<div class="container"> 
 
    <span>container</span> 
 
    <div class="parent"> 
 
     <span>parent</span> 
 
     <div class="child"> 
 
      <span>child</span> 
 
     </div> 
 
    </div> 
 
</div>

(如果父被用作透明層,一定要使用background-image或RGBA background-color:孩子繼承父的opacity

+2

這是最佳答案。如果'.parent'有一個固定的位置,這也不起作用,如果你可以改爲絕對的。 – 2017-01-22 20:33:51

+1

這應該是被接受的答案 – 2017-01-22 23:33:56

相關問題