仅更改文本的不透明度

时间:2014-01-24 17:31:26

标签: javascript jquery html css

我有一个带有子菜单的导航栏,我在其上放置opacity:.5(因为其他元素将放在下面)。但子菜单上的文字也变得更轻了。我希望li具有.5不透明度,并且其中的文本具有1个不透明度。我尝试了jquery,我尝试了css,但它们似乎没有用。这是一个JSFiddle

4 个答案:

答案 0 :(得分:2)

尝试使用rgba代替。使用此

替换opacity: 0.5内的ul.submenu
background-color: rgba(255,0,0,0.5);

您也可以删除

.submenu span {
    opacity:1;
}

您可以阅读有关此属性的更多信息here

<强> Updated Fiddle

答案 1 :(得分:1)

诀窍是使用rgba()代替opacity

答案 2 :(得分:0)

您将需要使用rgba而不是hex。这将产生你想要的外观。

   .yourclass{
    background: rgba(248,234,234,0.5); // THe .5 is the opacity.

    }

如果您担心IE无法正常运行,请尝试此操作。

 .yourclass {
    background: transparent;-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#7FF8EAEA,endColorstr=#7FF8EAEA)"; /* IE8 */    
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#7FF8EAEA,endColorstr=#7FF8EAEA);   /* IE6 & 7 */      
 zoom: 1;
  }

答案 3 :(得分:0)

为了支持旧浏览器,您可以指定正常的背景颜色,也可以指定50%透明的白色png:hover

li {
  background: #f00 url(image.png);
}
li:hover,
li:active,
li:focus {
  background: #f00;
}

注意,除非您使用透明的png polyfil

,否则这在IE6中不起作用