1. 概述
CSS3中的box-shadow属性可以实现阴影效果,它可以给元素添加一个或多个阴影效果。通过设置阴影的偏移量、模糊度、阴影颜色和透明度等属性,我们可以实现各种不同的阴影效果。
2. box-shadow的基本语法
box-shadow的基本语法如下:
box-shadow: h-shadow v-shadow blur spread color inset;
2.1 属性说明
h-shadow: 水平方向阴影的位置,可以是负值。
v-shadow: 竖直方向阴影的位置,可以是负值。
blur: 阴影的模糊度,值越大,阴影越模糊,可以是0。(可选)
spread: 阴影的扩张/收缩程度,值越大,阴影越大,可以是0。(可选)
color: 阴影的颜色。
inset: 可选值,如果存在,则阴影在边框内部。
2.2 示例代码
以下是一个简单的box-shadow示例代码:
.shadow {
box-shadow: 10px 10px 5px grey;
}
这段代码将元素添加了一个深灰色的阴影,阴影的水平偏移量是10px,竖直偏移量也是10px,模糊度为5px。
3. box-shadow的高级用法
除了上述基本属性,box-shadow还可以结合使用,实现更多样化的效果。
3.1 多重阴影
使用box-shadow可以给一个元素添加多重阴影,每组阴影之间用逗号隔开。
.shadow {
box-shadow:
10px 10px 5px grey,
-10px -10px 5px grey;
}
这段代码将一个元素添加了两个阴影,一个在右下方,一个在左上方,都是灰色的,模糊度为5px。
3.2 内阴影
通过设置inset属性为true,可以实现内阴影的效果。
.shadow {
box-shadow:
inset 0 0 10px rgba(0, 0, 0, 0.5);
}
这段代码将一个元素添加了一个内部阴影,即阴影在边框内部,颜色为黑色,不透明度为50%。
3.3 实现拐角处的阴影
通过设置多个阴影,可以实现拐角处的阴影效果。
.shadow {
box-shadow:
-5px 4px 10px grey,
0 5px 10px grey,
5px 4px 10px grey;
}
这段代码将一个元素添加了三个阴影,实现了拐角处的阴影效果。
3.4 剪切阴影
剪切阴影可以通过设置元素的伪元素::before或::after来创建。剪切阴影的效果类似于切纸的效果,可以让元素在页面上呈现出不同寻常的形态。
.clipped {
position: relative;
}
.clipped::before {
content: "";
position: absolute;
left: 10px;
top: 10px;
z-index: -1;
width: 100%;
height: 100%;
box-shadow: -10px -10px 4px rgba(0,0,0, .1);
clip-path: polygon(0 0, calc(100% - 20px) 0, calc(100% - 20px) calc(100% - 20px), 0 calc(100% - 20px));
}
这段代码将一个元素添加了一个剪切阴影,利用了clip-path属性实现剪切效果。
4. 总结
box-shadow是CSS3的一个非常实用的属性,它可以让我们为元素添加各种各样的阴影效果,为页面增加层次感和立体感。通过理解阴影的基本属性,以及多重阴影、内阴影、拐角处的阴影、剪切阴影等高级用法,我们可以在实际开发中自如地使用这个属性,实现各种各样的效果。