给定三个固定元素,使它们按特定顺序渲染

时间:2014-11-14 23:42:30

标签: css css3 css-position

如果我有三个div,每个div都有固定的位置。如何让.inner显示在.overlay上方?

HTML

<div class="container">
    <div class="inner">The inner container</div>
</div>
<div class="overlay"></div>

CSS

.container {
    position: fixed;
    z-index: 1;
    background: red;
    height: 100px;
    width: 100%;
}
.inner {
    z-index: 3;
    position: fixed;
    margin-top: 10px;
    width: 100%;
    background: yellow;
    height: 30px;
}
.overlay {
    z-index: 2;
    position: fixed;
    background: blue;
    opacity: 0.5;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

在这个JS小提琴中,您可以看到“黄色”元素如何在叠加层下方呈现。在保持.container修复时是否可以进行任何更改?

http://jsfiddle.net/4ne83oa4/8/

1 个答案:

答案 0 :(得分:0)

好吧,如果你必须按原样保留标记,你可以只使用.container类的一些伪类。

标记保持不变, CSS 有点像这样:check js fiddle

.container {
    position: fixed;
    background: red;
    height: 100px;
    width: 100%;
    z-index: 1;
}
.container:after,
.container:before{
    content: '';
    position: fixed;
 }
.container:after{
    z-index: -1;
    background: red;
    height: 100px;
    width: 100%;    
}
.container:before{
    z-index: 1;
    background: blue;
    opacity: 0.5;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}
.inner {
    position: fixed;
    margin-top: 10px;
    width: 100%;
    background: yellow;
    height: 30px;
    z-index: 1;
}