设置CSS中不透明度的div内元素的不透明度?

问题描述:

我正在使用图像作为菜单背景的项目。我在我的CSS样式表中定义了类,这些类指定了项目是否被“选中”时的外观,这意味着用户不在每个项目链接的页面上。设置CSS中不透明度的div内元素的不透明度?

我把它与图像顶部的一个div结构在一起,样式应用于它使它具有半透明的白色背景,所以看起来像图像的那部分被突出显示。每个半透明div还包含构成链接的文本,颜色设置为白色。我希望div能够保持不透明,而文本仍然是“1”的不透明度。

我试过类似问题中讨论的方法(CSS - Apply Opacity to Element but NOT To Text Within The Element),但该方法似乎不适用于我。

如果你想看看它,我已经发布了JSFiddle链接的代码位http://jsfiddle.net/Cwca22/uG5y8/

在此先感谢您的帮助。

+0

感谢所有对我的问题Kolink,Nacho,techfoobar和jblasco的解答。现在都很好,再次感谢。 ; ^) – 2012-01-02 18:14:28

如果你正在寻找一个纯CSS的解决方案,并愿意改变你的标记一点,看看这个例子:

http://jsfiddle.net/jJ4MZ/3/

它把每个“链接”作为单独的背景和文本元素的组合,然后将它们定位在彼此之上,以便只有背景div使用透明度。

+0

如果我在商业项目中使用您的代码,可以吗?我根据需要对其进行了一些修改,但我只是想确保它可以事先使用。 – 2012-01-02 23:20:14

+0

没问题,很高兴有帮助! – justis 2012-01-03 03:00:53

+0

好吧,太棒了,谢谢! – 2012-01-03 04:26:08

老问题没有任何标准的解决方案呢!这在今天的CSS中是不可能的。我知道的唯一解决方案是使用JS。使用JS,您可以捕获受影响的H#的鼠标移动并创建/定位元素。这个新的'over'元素不应该是不透明度为0.2的DIV的孩子。

+0

好吧,我可能不得不尝试一下,谢谢。我很惊讶没有定义任何解决这些问题的方法! – 2011-12-22 19:15:53

+0

是的,认真。我相信这个问题一直存在于CSS2正在设计之中。零标准的跨浏览器方式来实现这一目标! – techfoobar 2011-12-22 19:17:53

如果我正确地理解了你,你希望div的背景颜色部分透明以显示图像,但保持文本不透明?这很简单:3

<div style="background-color: rgba(255,255,255,0.5);">Text</div> 

如果你想为浏览器不允许这种格式提供支持,那么你需要:

<div style="background: #ffffff; background: rgba(255,255,255,0.5);">Text</div> 

一次我写了的jsfiddle像这样的问题。这里是http://jsfiddle.net/A53Py/5/

创建一个相同级别的元素,它绝对地位于元素后面,没有不透明性。无需告诉它的跨浏览器

希望它可以帮助