2009-02-05 121 views
0

嘿,我有这个div显示为弹出:透明DIV问题

<div class="popup"> 
</div> 

然后用jQuery添加其他类将它与相关的那类,位置,大小,颜色的CSS给它和透明度:

.show { 
    position: absolute; 
    color: #F4F5F6; 
    width: 600px; 
    margin-left: -300px; 
    height:300px; 
    background: #000000; 
    left:50%; 
    top:200px; 

    filter:alpha(opacity=95); 
    -moz-opacity: 0.95; 
    opacity: 0.95; 
} 

我的问题是这样的:

我添加文本和图像到div。

结束了,如:

<div class="popup show"> 
    <div class="image"> 
     <img scr="blabla.png"> 
    </div> 
    <div class="text"> 
     ble ble ble 
    </div> 
</div> 

我的问题是下面的,即使我在这里重写的不透明度:

div.image 
{ 
    position: relative; 
    float:left; 
    width:202; 
    height:402; 
    filter:alpha(opacity=100); 
     -moz-opacity: 1; 
     opacity: 1; 
} 

的图像仍然具有透明度apears。

有没有办法重写不透明度值,而不必将图像div放在弹出式div外面?

回答

2

由于'.show'类的不透明度为95%,其所有后代也是如此。这是不幸的,但这是不透明的作品。只要他们仍然是子孙后代,后代就无法克服祖先的不透明性。

你必须要么设置“.show”背景的半透明PNG或导致一些尴尬的HTML(参见:Non-Transparent Elements Inside Transparent Elements

并不想成为生涩,但this Google search(或类似的东西)可能会帮助

2

试试这个:

div.image 
{ 
position: relative; 
float:left; 
width:202; 
height:402; 
filter:alpha(opacity=100) !important; 
    -moz-opacity: 1 !important; 
    opacity: 1 !important; 
} 

http://www.w3.org/TR/CSS2/cascade.html#important-rules

编辑:对不起;我甚至曾经遇到过这种情况,但并没有被绞死。我认为嵌套元素的最大不透明度与外部元素的不透明度相同;你永远不会得到比你的父元素更不透明的东西!最后我检查了这是一个适当的CSS问题,我不知道解决方法。

作为一种解决方法,您可以尝试不使嵌套,但使用一些ucnning定位欺骗。

+0

仍然保持透明 – fmsf 2009-02-05 15:15:21

+0

@edit:是的,这就是我正在做的,但仍然试图找出解决方案:) – fmsf 2009-02-05 15:24:15