我正在尝试用css3实现这种效果:
HTML代码完全像
...
<header>
...
</header>
<div id="wrapper">
...
</div>
...
目前,css就像是
header {
display: block;
width: 900px;
height: 230px;
margin: 0 auto;
border: 1px solid #211C18;
...
box-shadow: 2px 4px 20px #005377;
-moz-box-shadow: 2px 4px 20px #005377;
-webkit-box-shadow: 2px 4px 20px #005377;
}
#wrapper {
width: 820px;
margin: 0 auto;
...
border-right: 1px solid #211C18;
border-bottom: 1px solid #211C18;
border-left: 1px solid #211C18;
...
box-shadow: 2px 4px 20px #005377;
-moz-box-shadow: 2px 4px 20px #005377;
-webkit-box-shadow: 2px 4px 20px #005377;
}
为了获得理想的结果,我需要:
我一直在阅读很多关于盒子阴影的内容,而且我还没有找到一个让我高兴的解决方案...... 有什么想法吗?
答案 0 :(得分:15)
此jsfiddle可以满足您的需求。
它的工作方式是使用一个主#wrap
元素,该元素使内容居中,并为绝对定位的#main
元素创建坐标图。这是因为它的位置:相对CSS规则。您最终得到以下标记:
<div id="wrap">
<header></header>
<div id="main"></div>
</div>
然后将header
置于此位置和给定位置:relative和z-index以将其设置在#main
容器上方。
最后#main
绝对位于header
下方。 CSS看起来像这样:
/* centre content and create coordinate map for absolutely positioned #main */
#wrap {
width: 300px;
margin: 20px auto;
position: relative;
}
header, #main {
background: #fff;
/* rounded corners */
border: 1px solid #211C18;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
/* dropshadows */
box-shadow: 2px 4px 20px #005377;
-moz-box-shadow: 2px 4px 20px #005377;
-webkit-box-shadow: 2px 4px 20px #005377;
}
header {
display: block;
width: 300px;
height: 50px;
/* stack above the #main container */
position: relative;
z-index: 2;
}
#main {
width: 200px;
height: 70px;
/* stack below the header and underlap it...if that's even a word */
position: absolute;
z-index: 1;
top: 40px;
left: 50px;
}
答案 1 :(得分:3)
我只是运气相对定位。
例如。
第一个div有一个盒子阴影和一个底部边距。第二个div在阴影下滑动。
#firstdiv {width: 960px; box-shadow: 5px 5px 5px #ccc; margin-bottom: 10px;}
#seconddiv {width: 960px; position: relative; top: -10px;}
这不是最好的解决方案,但它对我有用。
答案 2 :(得分:2)
将位置设置为“相对”已经解决了问题!