我有一个网站,其中包含以下设置:
<div id="container"> <div id="header"></div> <div id="content"></div> <div id="clearfooter"></div> </div> <div id="footer"></div>
当内容不足时,我使用clearfooter和容器外部的页脚将页脚保持在页面底部.
我的问题是我想以下列方式在容器div上应用一个盒子阴影:
#container {width:960px; min-height:100%; margin:0px auto -32px auto; position:relative; padding:0px; background-color:#e6e6e6; -moz-Box-shadow: -3px 0px 5px rgba(0,.8),3px 0px 5px rgba(0,.8);} #header {height:106px; position:relative;} #content {margin:0px; padding:10px 30px 10px 30px; position:relative;} #clearFooter {height:32px; clear:both; display:block; padding:0px; margin:0px;} #footer {height:32px; padding:0px; position:relative; width:960px; margin:0px auto 0px auto;}
正如你可以看到它在容器div的每一侧都有一个阴影.然而,在这样做时,当内容没有占据整个高度时,由于模糊,阴影推动经过页脚的底部仍然存在滚动条.
有没有办法防止阴影越过容器div的边缘并导致滚动条?
谢谢你的帮助!
解决方法
Webkit最近改变了它的行为,如下所述:
http://archivist.incutio.com/viewlist/css-discuss/109662
http://archivist.incutio.com/viewlist/css-discuss/109662
事实上,截至今天,它仍然是Gecko和其他浏览器的问题.
我设法使用负边距修复Gecko上的这个令人讨厌的问题,这也适用于所有其他浏览器.
让我们假设你有一个屏幕宽的元素(E),盒子阴影应用零偏移和模糊半径R.假设你正在处理水平滚动条问题,因为阴影导致元素E重新加宽宽度.
>用辅助包装元素包裹E(W)
>设置溢出:隐藏在W上
>设置填充:W上的R 0 R 0
>设置边距:W上的-R 0 -R 0
我们的想法是使用隐藏的溢出来剪掉左侧和右侧有问题的阴影.然后使用填充负边距技巧不剪辑顶部和底部阴影,并将框保持在HTML流中的相同位置.
您可以调整此技术以剪切出有问题的阴影框的任意一侧.