2010-11-15 84 views
9

我想爲父項應用不透明度,但我不希望子元素繼承此不透明度。如何取消子元素的不透明度?

<div class="parent"> 
<div class="child"></div> 
</div> 

.parent { 
    opacity: 0.6; 
} 

有沒有辦法「取消」繼承的不透明度?也許強制它爲opacity=1爲子元素?

+0

看看http://stackoverflow.com/questions/806000/transparent-background-but-not-the-content-text-images-inside-it-in-css-on – 2014-02-27 08:46:27

回答

11

孩子的不透明度永遠是父母的不透明度,如果孩子的不透明度爲1

這不是一個繼承的問題,而是與透明度的方式進行計算。

例如,

<div id="parent"> 
    <div></div> 
</div> 

<div id="original"> 
</div> 

<div id="quarter"> 
</div> 

#parent div, #quarter { 
    width: 100px; 
    height: 100px; 
    background-color: orange; 
} 

#parent div { 
    opacity: 0.5; 
} 

#parent { 
    opacity: 0.5; 
} 

#quarter { 
    opacity: 0.25; 
} 

#quarter的不透明度,從你的角度來看,是相同的#parent div,但事實上,#parent div#quarter不透明的兩倍。看到這個的jsfiddle更多細節:http://jsfiddle.net/HUaNm/


避免這個問題的唯一辦法是將孩子從父母的。或者,根據您在此處所需的內容,還可以使用rgba顏色作爲父級的背景/邊框/字體顏色而不是不透明度,但效果與應用不透明度不同。

+6

這讓我瘋狂。如果只有瀏覽器支持不透明:1.5或其他方式來過度引用這將是一個沒有問題。 – 2012-10-24 15:17:51

相關問題