为什么半透明背景在不同的div中闪耀

时间:2014-02-02 21:26:28

标签: css html5 css3 alpha rgba

我有一个包含3个元素的页面。一个在中心,有一个很好的背景图像;覆盖在这上面的是第二个div,它有一个黑色的半透明背景,可以更好地读取里面的文字。

除此之外,我还有一个带有完全白色背景的浮动div。

由于一些奇怪的原因,当浮子覆盖半透明div时,半透明的背景似乎渗透到浮子中。

我的HTML + CSS来演示我的问题。如果您使浏览器窗口变小,右侧浮动将向中心div移动。它将正确保持红色,除了它击中alpha-inset的地方。

为什么?

<!doctype html>
<head>
<style type="text/css">
#centerDiv {
   height: 300px;
   width: 900px;
   margin: 0px auto 0px auto;
   padding: 0 0;
   background-color: green;
}
#centerInset {
   width: 100%;
   background-color: rgba(0,0,0,0.3);
   position: relative;
   top: 225px;
   height: 74px;
   color: white;
}
#floater {
   float: right;
   width: 200px;
   height: 300px;
   border: 1px solid;
   clear: both;
   background-color: rgba(250,0,0,1);
   border: 1px solid black;
}
</style>
</head>
<body>
<div id="floater">
   <span>some floating text</span>
</div>
<div id="centerDiv">
   <div id="centerInset"><span>Some random text</span></div>
</div>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

您需要添加z-index + position才能使z-index正常工作 - &gt; jsfiddle

答案 1 :(得分:0)

我不确定但它可能是这样的:当你使“centerInset”相对时,z-index相对于第一个具有静态位置的父元素。

如果你使“centerDiv”位置相对,它会像你期望的那样工作。