CSS3box-shadow效果⼤全(内阴影,外阴影,三边阴影,双边阴影,单边阴影,细线描边…)
CSS3 box-shadow 属性⽤来描述⼀个元素的⼀个或多个阴影效果,该属性⼏乎可以让你完成你想要的任何阴影效果。然⽽ box-shadow 属性语法和取值⾮常灵活,对于新⼿有点不容易理解。今天总结⼀下语法和 box-shadow 属性各种阴影效果。
语法
CSS 代码:
/* offset-x | offset-y | color */
box-shadow: 60px -16px teal;
/* offset-x | offset-y | blur-radius | color */
box-shadow: 10px 5px 5px black;
/* offset-x | offset-y | blur-radius | spread-radius | color */
box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);
/* inset | offset-x | offset-y | color */
box-shadow: inset 5em 1em gold;
/* Any number of shadows, separated by commas */
box-shadow: 3px 3px red, -1em 0 0.4em olive;
/* Global keywords */
box-shadow: inherit;
box-shadow: initial;
box-shadow: unset;
取值说明:
css特效文字inset: 默认阴影在边框外。使⽤ inset 后,阴影在边框内(即使是透明边框),背景之上内容之下。也有些⼈喜欢把这个值放在最后,浏览器也⽀持。
<offset-x> <offset-y>: 这是头两个 <length>值,⽤来设置阴影偏移量。<offset-x> 设置⽔平偏移量,如果是负值则阴影位于元素左边。
<offset-y> 设置垂直偏移量,如果是负值则阴影位于元素上⾯。可⽤单位请查看 <length>。如果两者都是0,那么阴影位于元素后⾯。
这时如果设置了 <blur-radius> 或 <spread-radius> 则有模糊效果。
<blur-radius>: 这是第三个 <length>值。值越⼤,模糊⾯积越⼤,阴影就越⼤越淡。 不能为负值。默认为0,此时阴影边缘锐利。
<spread-radius> : 这是第四个 <length>值。取正值时,阴影扩⼤;取负值时,阴影收缩。默认为0,此时阴影与元素同样⼤。
<color> : 相关事项查看 <color> 。如果没有指定,则由浏览器决定——通常是color的值,不过⽬前Safari取透明。
⽹上了⼏张图,⼤家可以对应的看⼀下,更加好理解。
⽤CSS 代码再说的具体⼀点:
div {
width: 150px;
height: 150px;
background-color: #fff;
box-shadow: 120px 80px 40px 20px #0ff;
/* 顺序为: offset-x, offset-y, blur-size, spread-size, color */
/* blur-size 和 spread-size 是可选的 (默认为 0) */
}
来个图解:
最简单的常规效果
下⾯是⼀些最简单的阴影效果,看代码也应该⾮常容易理解:
单边阴影效果
单边阴影效果可以做⼀些效果,⽐如特殊场景下描边,⼩阴影,再⽐如⼀些过渡⾊。
双边阴影及多重阴影效果
其他⼀些有意思的阴影
使⽤伪元素::before和::after,我们能创造出⾮常逼真的只有图⽚才能实现的阴影效果。让我们来看⼀个例⼦:再来⼀些效果