在相邻div之间的阴影中接缝

时间:2015-04-24 16:00:33

标签: html css css3 z-index box-shadow

相邻元素通常看起来好像是融合的,它们之间没有线条或接缝。示例:http://jsfiddle.net/4m3L79w4/1/

但是,如果正在使用阴影,则不再出现这种情况。

HTML:

<div class="top"></div>
<div class="bottom"></div>

的CSS:

DIV {
    background-color: #7faf7f;
    width: 400px;
    height: 50px;
    position: relative;
    box-shadow: 0px 5px 20px 5px #000000;
}
.top {
    z-index: 2;
}
.bottom {
    z-index: 2;
}

“bottom”元素将阴影投射到“top”元素上,即使两者具有相同的z-index。

JSFiddle:https://jsfiddle.net/b4fvb7e0/1/

是否有可能使两个元素之间的阴影消失,从而使外观融合?

这实际上是我试图创建的标题的简化版本,在某些页面中应该看起来与下一个元素融合。 JSFiddle,标题为standalone,并包含以下元素:http://jsfiddle.net/c8oat7vo/3/

1 个答案:

答案 0 :(得分:2)

在顶部和底部设置一个伪元素,并在此设置阴影。

此外,将伪元素的z-index设置为-1

修复z-index问题感谢Jose Gomez

&#13;
&#13;
DIV {
    background-color: #7faf7f;
    width: 400px;
    height: 50px;
    position: relative;
}
.stack {
    background-color: #7f7faf;
    width: 80%;
    height: 60%;
    left: 10%;
    top: 20%;
    box-shadow: 0px 5px 20px 5px #000000;
    z-index: 1;
}
.top {
    width: 350px;
    margin-left: auto;
    margin-right: auto;
    z-index: auto;
    position: relative;
}
.bottom {
    width: 100%;
    z-index: auto;
}

.top:after, .bottom:after {
    content: "";
    position: absolute;
    top: 0px; left: 0px; right: 0px; bottom: 0px;
    box-shadow: 0px 5px 20px 5px #000000;
    z-index: -1;
}
&#13;
<div class="top">
    <div class="stack"></div>
</div>
<div class="bottom"></div>
&#13;
&#13;
&#13;