css - 防止框阴影显示在特定的一侧

标签 css shadow

有没有办法创建一个 css box-shadow,无论模糊值如何,阴影只出现在所需的边上?

例如,如果我想创建一个左右两侧有阴影且顶部或底部没有阴影的 div。 div 不是绝对定位的,它的高度由内容决定。

-- 编辑--

@ricebowl:感谢您的回答。也许您可以帮助创建一个完整的解决方案来解决我对您的解决方案的回复中所述的问题...我的页面设置如下:

<div id="container">
    <div id="header"></div>
    <div id="content"></div>
    <div id="clearfooter"></div>
</div>
<div id="footer"></div>

像这样的 CSS:

#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   {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;}

最佳答案

您可以定义第四个距离,称为散布偏移,它将阴影在所有 4 个边上移入或移出。因此,如果您将其设置为模糊距离的负值,这将使阴影向内移动相同的距离,因为模糊将阴影向外延伸,从而有效地隐藏它。当然,这也会将阴影向内移动到您希望它出现的一侧,因此您需要通过模糊距离增加偏移量才能撤消它。即

box-shadow: (horizontal + blur) 0px (blur) (-blur) color;

所以在你的例子中:

box-shadow: -8px 0px 5px -5px rgba(0,0,0,.8), 8px 0px 5px -5px rgba(0,0,0,.8);

关于css - 防止框阴影显示在特定的一侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2360386/

相关文章:

html - 2 个独立的 css 类应用于 1 个元素

html - 打开单个图像时可以将浏览器缩放级别设置为 100%?

javascript - Bootstrap 工具提示工作但由于 z-index 而隐藏?

jquery - 为什么动画对我的下一个按钮的前几个 'selections' 不起作用?

css - 实现这种背景渐晕效果的最佳方式?

ios - UITableViewCell 阴影在滚动后消失

c++ - 'int accidents[5]' 的声明隐藏参数错误

android - 无法从未提升的透明 FloatingActionButton 中删除 "shadow"

jQuery 动画故障

ios - UITableViewCell 上的阴影性能不佳