似乎有像 http://jsfiddle.net/nwekR/
这样的标记<div id="container">
Outer Div
<div id="inner">Inner Div</div>
</div>
和CSS一样
#container {
position: relative;
z-index: 6;
}
#inner {
position: absolute;
z-index: 4;
}
#inner
仍高于#container
我可以#inner
以下吗?
答案 0 :(得分:4)
没有
CSS 2.1规范说明了这个绘画元素的标准:
鉴于这些规则和您的HTML,#container
正在为元素#inner
创建堆叠上下文,这意味着必须首先呈现#container
。
其他人已经发布了替代HTML / CSS以获得您想要的效果,但如果您想了解更多关于您想要的内容的更多信息,请参阅以下文档:
答案 1 :(得分:2)
在HTML方面,你只需要将它放在内部元素之外。 这是您的解决方案:http://jsfiddle.net/nwekR/23/
<div id="container">
Outer Div
</div>
<div id="inner">Inner Div</div>
答案 2 :(得分:1)
最干净的解决方案是添加额外的包装元素,并将#inner
移到#container
之外。
额外的包装元素被赋予position: relative
,因此其他所有内容应与之前相同,但#inner
位于#container
下面。
答案 3 :(得分:0)
这是不可能的(在它当前的内部容器子容器的状态),因为当浏览器呈现DOM时,它从DOM树上自上而下,并且没有办法在已经存在的东西下绘制被绘制(即在孩子面前画父母)。
您可以阅读有关z-index here的更多信息。
有很多方法可以实现(通过更改html),但是你可以看到thirtydot的解决方案。
答案 4 :(得分:0)
#container {
background: yellow;
position: relative;
height: 100px;
-moz-box-shadow: 0 2px 6px rgba(0,0,0,0.6);
-webkit-box-shadow: 0 2px 6px rgba(0,0,0,0.6);
box-shadow: 0 2px 6px rgba(0,0,0,0.6);
z-index: 6;
}
#inner {
background: orange;
position: absolute;
z-index: 4;
width: 100px;
height: 50px;
top: 180px;
right: 0;
padding-top: 20px;
}