相邻 div 之间的阴影接缝
Seams in shadows between adjacent divs
相邻元素通常看起来像是融合在一起,它们之间没有线条或接缝)。示例: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/
有没有办法让两个元素之间的阴影消失,让外观融合?
这实际上是我正在尝试创建的 header 的简化版本,它在某些页面中应该与下一个元素融合在一起。带有 header 独立和以下元素的 JSFiddle:http://jsfiddle.net/c8oat7vo/3/
在顶部和底部分别设置一个伪元素,在这一个设置阴影。
此外,将伪元素的 z-index 设置为 -1
修复了 z-index 问题,感谢 Jose Gomez
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;
}
<div class="top">
<div class="stack"></div>
</div>
<div class="bottom"></div>
相邻元素通常看起来像是融合在一起,它们之间没有线条或接缝)。示例: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/
有没有办法让两个元素之间的阴影消失,让外观融合?
这实际上是我正在尝试创建的 header 的简化版本,它在某些页面中应该与下一个元素融合在一起。带有 header 独立和以下元素的 JSFiddle:http://jsfiddle.net/c8oat7vo/3/
在顶部和底部分别设置一个伪元素,在这一个设置阴影。
此外,将伪元素的 z-index 设置为 -1
修复了 z-index 问题,感谢 Jose Gomez
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;
}
<div class="top">
<div class="stack"></div>
</div>
<div class="bottom"></div>