CSS Box Shadow Bottom Only

Wil*_*ner 367 css underline box-shadow

我该怎么做呢?我希望我的元素看起来好像有一个阴影下划线.我不想要其他三面的影子

小智 785

做这个:

box-shadow: 0 4px 2px -2px gray;
Run Code Online (Sandbox Code Playgroud)

它实际上要简单得多,无论你将模糊设置为(第三个值),将展开(第四个值)设置为它的负数.

  • 以防万一有人想了解其工作原理:*第一个值将光源的x偏移设置为0.*第二个值将光源的y偏移设置为+4.*第三个值设置2px的模糊效果.(使阴影不均匀).*第四个值将扩展设置为-2px.(收缩阴影2px.)这将使阴影比你正在阴影的元素宽4px,所以如果你只想要一个简单的下划线,将最后一个值设置为0. (167认同)
  • 这是迄今为止最好的方法.纯css3,没有黑客. (7认同)
  • 它在firefox 18.X下对我没用.对我有用的是:`box-shadow:inset 0 -4px 3px black;`但它也会在两侧产生一点阴影..:_( (3认同)
  • 但是对于大的阴影(20像素或更多)来说,效果不好... :( (2认同)
  • @ahnbizcad不完全是任意的。“ 0”不需要单位。因此,增加一个单元是多余的并且浪费空间。因此,不添加单元是优选的。*但是*:我经常确实添加一个单位来方便*改变*对象检查器中的值...但这更多是一种调试功能...我猜想如果值是`,大多数压缩程序将删除该单位。 0`。 (2认同)

Yi *_*ang 49

你可以使用两个元素,一个在另一个内部,并给出外部overflow: hidden元素和宽度等于内部元素以及底部填充,以便所有其他边上的阴影被"切断"

#outer {
    width: 100px;
    overflow: hidden;
    padding-bottom: 10px;
}

#outer > div {
    width: 100px;
    height: 100px;
    background: orange;

    -moz-box-shadow: 0 4px 4px rgba(0, 0, 0, 0.4);
    -webkit-box-shadow: 0 4px 4px rgba(0, 0, 0, 0.4);
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.4);
}
Run Code Online (Sandbox Code Playgroud)

或者,浮动外部元素以使其缩小到内部元素的大小.请参阅:http://jsfiddle.net/QJPd5/1/


Ner*_*kat 23

试试这个

-moz-box-shadow:0 5px 5px rgba(182, 182, 182, 0.75);
-webkit-box-shadow: 0 5px 5px rgba(182, 182, 182, 0.75);
box-shadow: 0 5px 5px rgba(182, 182, 182, 0.75);
Run Code Online (Sandbox Code Playgroud)

你可以在http://jsfiddle.net/wJ7qp/看到它

  • 20px`0 20px 20px`对我来说很好 (2认同)

小智 11

尝试这样可以完全控制盒子阴影.

    <html>

    <head>
        <style> 
            div {
                width:300px;
                height:100px;
                background-color:yellow;
                box-shadow: 0 10px black inset,0 -10px red inset, -10px 0 blue inset, 10px 0 green inset;
           }
        </style>
    </head>
    <body>
        <div>
        </div>
    </body>

    </html>
Run Code Online (Sandbox Code Playgroud)

这也适用于外框阴影.