我有两个相邻的 div,背景颜色为白色。http://jsfiddle.net/J5ZXt/是代码的链接。我希望两个 div 看起来像一个元素,所以我需要删除一部分阴影。有任何想法吗?
问问题
7424 次
4 回答
13
是的,有可能。只需用以下内容掩盖它:before
:
/* Add relative positioning */
#two {
position:relative;
}
/* Add :before element to cover up shadow */
#two:before {
background:white;
display:block;
content:".";
font-size:0;
width:4px;
height:100px;
position:absolute;
left:-4px;
top:0;
}
/* Existing styles */
#one {
width: 100px;
height: 100px;
background: #FFF;
-moz-box-shadow: 0 0 3px 1px rgba(0,0,0,0.3);
-webkit-box-shadow: 0 0 3px 1px rgba(0,0,0,0.3);
box-shadow: 0 0 3px 1px rgba(0,0,0,0.3);
float:left;
}
#two {
width: 100px;
height: 300px;
background: #FFF;
-moz-box-shadow: 0 0 3px 1px rgba(0,0,0,0.3);
-webkit-box-shadow: 0 0 3px 1px rgba(0,0,0,0.3);
box-shadow: 0 0 3px 1px rgba(0,0,0,0.3);
float:left;
}
<div id="one"></div>
<div id="two"></div>
于 2012-05-16T19:14:41.567 回答
6
这是我能在几分钟内得到的最好的,我认为它可以完成工作。最好的事情是它的简单性(您的 css 只需 3 次编辑)
定位 D1 的阴影,使右边缘具有负值(-4px 足以隐藏它)
给两个 div 相对定位,这样我们就可以控制它们的堆叠顺序。
给 D1 一个比 D2 更高的 z-index,这样它就可以掩盖 D2 阴影的顶部。
#one {
width: 100px;
height: 100px;
background: #FFF;
-moz-box-shadow: -4px 0 3px 1px rgba(0,0,0,0.3);
-webkit-box-shadow: -4px 0 3px 1px rgba(0,0,0,0.3);
box-shadow: -4px 0px 3px 1px rgba(0,0,0,0.3);
float:left;
position: relative;
z-index: 20;
}
#two {
width: 100px;
height: 300px;
background: #FFF;
-moz-box-shadow: 0 0 3px 1px rgba(0,0,0,0.3);
-webkit-box-shadow: 0 0 3px 1px rgba(0,0,0,0.3);
box-shadow: 0 0 3px 1px rgba(0,0,0,0.3);
float:left;
z-index: 5;
position: relative;
}
于 2012-05-16T19:16:28.863 回答
2
于 2012-05-16T19:11:15.723 回答
2
因为我讨厌被超越并且倾向于成为一个完美主义者,所以我想出了一个不依赖于特定高度的答案#one
——它必须比(当前接受#two
的答案也是如此)短. 它的一侧也没有缺口或较大阴影的缺点。#one
注意:这个答案还提供了通过 弯曲角的可能性border-radius
。只需添加border-radius:4px;
即可#one:after
查看结果。
新的 CSS
<style type="text/css">
#one {
width: 100px;
height: 200px;
background: #fff;
float:left;
position:relative;
overflow:hidden;
}
#one:after {
display:block;
content:".";
font-size:0;
color:transparent;
height:8px;
width:100%;
padding-left:4px;
position:absolute;
bottom:-4px;
left:-4px;
background:#fff;
z-index:2;
-moz-box-shadow: inset 0 0 3px 1px rgba(0,0,0,0.3);
-webkit-box-shadow: inset 0 0 3px 1px rgba(0,0,0,0.3);
box-shadow: inset 0 0 3px 1px rgba(0,0,0,0.3);
}
#two {
width: 100px;
height: 300px;
background: #FFF;
-moz-box-shadow: 0 0 3px 1px rgba(0,0,0,0.3);
-webkit-box-shadow: 0 0 3px 1px rgba(0,0,0,0.3);
box-shadow: 0 0 3px 1px rgba(0,0,0,0.3);
float:left;
}
</style>
于 2012-05-16T19:42:30.740 回答