Open
Description
一、介绍
1.1 语法
详细见MDN。
/* 完整语法 */
box-shadow: [insert] x-offset y-offset [blur-radius] [spead-radis] [color];
/* 关键字`none` */
box-shadow: none;
- 可以同时应用多个
box-shadow
值; - 只有
x/y offset
是必须的,其他都可选; color
的默认值是currentcolor
变量的值。
x/y offset
(偏移量)
可以视为box-shadow
也是个矩形区域,并且和元素矩形区域一致。默认情况下位置也一致(左上角对齐)。
通过 x/y offset
可以控制box-shadow
矩形区域的偏移量。
blur-radius(模糊半径)
值越大越阴影越模糊,不可以为负值。
如何实现“模糊”效果?
利用的渐变实现模糊的。
对于长而直的阴影边缘,它会创建一个过渡颜色用于模糊 以阴影边缘为中心、模糊半径为半径的局域,过渡颜色的范围在完整的阴影颜色到它最外面的终点的透明之间。
阴影边缘就是阴影矩形的边,并且受spead-radius
影响。
spead-radius(延伸半径)
控制box-shadow
矩形区域延伸长度大小,可以为负值。可用于实现box-shadow
矩形区域缩放。
注意:box-shadow
矩形区域4个方向同时延伸的,不能指定单个方向延伸。
1.2 blur-radius PK spead-radius
第一次看到这两个属性有点疑惑,不过它俩是不同的概念,也不存在可比性,只是容易混淆而已。
二、指定border
阴影
利用x/y-offset
+spead-radius
模拟。这样实现的缺点是四个角没有阴影效果。
.top {
box-shadow: 0 -5px 5px -5px #333;
}
.right {
box-shadow: 5px 0 5px -5px #333;
}
.bottom {
box-shadow: 0 5px 5px -5px #333;
}
.left {
box-shadow: -5px 0 5px -5px #333;
}
.all {
box-shadow: 0 0 5px #333;
}