我要说这段代码:
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Layers Opacity</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="robots" content="index,follow" />
<style type="text/css">
div#container
{
background-color: black;
width: 200px;
height: 400px;
padding-top: 50px;
opacity: 0.5;
}
ul#menu
{
background-color: red;
width: 150px;
margin: 0 auto;
opacity: 1;
}
</style>
</head>
<body>
<div id="container">
<ul id="menu">
<li><a href="#"></a>Menu 1</li>
<li><a href="#"></a>Menu 2</li>
<li><a href="#"></a>Menu 3</li>
<li><a href="#"></a>Menu 4</li>
<li><a href="#"></a>Menu 5</li>
</ul>
</div>
</body>
</html>
我想把我的“#menu”全彩色,红色。 我试图通过将不透明度设置为1来删除继承,但它不起作用。 我做错了吗?或者通过这种方式是不可能的?
我可以在我的菜单之外做一个图层,然后用z-index将它放在背景中,但是我在纯css中看起来很方便,而不是修改我的xhtml。
由于
答案 0 :(得分:3)
不。将菜单放在容器外面将是正常的修复;如果你不能改变标记,另一种方法是完全避免不透明,而是使用半透明的PNG作为容器背景(如果需要,可以使用适当的AlphaImageLoader修复IE6。)
答案 1 :(得分:3)
由于您只是尝试更改元素的背景,因此可以在支持浏览器时使用rgba颜色(CSS 3)。大多数不支持它的浏览器都可以处理半透明的PNG。
请参阅(明确的自我推销)CSS 3: RGBA today以获得更全面的解释和一些示例代码。
答案 2 :(得分:1)
如果对象是容器元素, 然后效果好像是内容 将容器元件混合 使用a来反对当前的背景 掩码每个像素的值 面具是。
由于您的菜单是容器的内容,因此它也会应用容器不透明度。您唯一的选择是应用一种解决方法,使您的菜单在技术上不包含在div中。 This article也描述了这种方法。
答案 3 :(得分:0)
我会使用透明的png作为现代浏览器的背景图像和IE6中的过滤器,如本文所述:Cross Browser Background Transparency With CSS