微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

容器div上的CSS框阴影会导致滚动条

我有一个网站,其中包含以下设置:
<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

事实上,截至今天,它仍然是Gecko和其他浏览器的问题.

我设法使用负边距修复Gecko上的这个令人讨厌的问题,这也适用于所有其他浏览器.

让我们假设你有一个屏幕宽的元素(E),盒子阴影应用零偏移和模糊半径R.假设你正在处理水平滚动条问题,因为阴影导致元素E重新加宽宽度.

>用辅助包装元素包裹E(W)
>设置溢出:隐藏在W上
>设置填充:W上的R 0 R 0
>设置边距:W上的-R 0 -R 0

我们的想法是使用隐藏的溢出来剪掉左侧和右侧有问题的阴影.然后使用填充负边距技巧不剪辑顶部和底部阴影,并将框保持在HTML流中的相同位置.

您可以调整此技术以剪切出有问题的阴影框的任意一侧.

原文地址:https://www.jb51.cc/css/215280.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。