当前位置:  开发笔记 > 前端 > 正文

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

如何解决《容器div上的CSS框阴影会导致滚动条》经验,为你挑选了1个好方法。

我有一个网站,其中包含以下设置:

当内容不足时,我使用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,0,0,.8), 
           3px 0px 5px rgba(0,0,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的边缘并导致滚动条?

谢谢你的帮助!



1> Antonin Hild..:

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流中的相同位置.

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

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有