最近又叕看到了一个好看的特效,随后整理了一下,发现实现起来主要靠一个css属性就实现了,有一次刷新了我对css强大的认知????,这个属性就是box-shadow,平常我们用到的比较少,但是针对于C端可能使用就多了,但是你们真正掌握了它的使用吗?让我这一文带你深度了解box-shadow
box-shadow可以为元素的框架添加阴影效果,这个属性可以设置多个阴影效果,每个阴影效果之间用逗号分隔。box-shadow属性可以设置的值包括阴影的X轴偏移量、Y轴偏移量、模糊半径、扩散半径和颜色
平常使用我们都是box-shadow:第一个值 第二个值 第三个值 第四个值;每个值后面用空格隔开
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <style> // box盒子阴影X轴便宜10像素Y轴偏移10像素,模糊半径为20像素,颜色为#ccc .box{ margin: 100px auto; width: 200px; height: 200px; border-radius: 50%; border: none; background-color: rgb(151, 211, 151); box-shadow: 10px 10px 20px #ccc; } </style> <body> <div class="box"></div> </body> </html> |
五个值
box-shadow其实有五个值,如果有五个值的情况,那第四个值就不再是颜色了,而第五个值是颜色,第四个值表示的是阴影的半径大小,值越大阴影越大
1 2 3 4 5 6 7 8 9 10 |
<style> .box{ width: 200px; height: 200px; border-radius: 50%; border: none; background-color: rgb(77, 255, 0); box-shadow: 10px 10px 20px 30px #ccc; } </style> |
inset(六个值)
当使用了inset的时候变成了六个值,阴影将不再是对外扩散,相反是网内出现内阴影,而且第五个值(五个值时的第四个值)数值越大阴影往内扩散越大,直到铺满盒子,数值在变大阴影也不会出现变化了
除了可以控制内阴影还是外阴影以外,还可以使用 ,来进行间隔实现多个阴影效果
1 2 3 4 5 6 7 8 9 10 11 |
<style> .box{ margin:100px auto; width: 200px; height: 200px; border-radius: 50%; border: none; background-color: aqua; box-shadow: 0 0 20px #fff,20px 0 80px #f0f,-20px 0 80px #0ff,inset 0 0 50px #fff,inset 200px 0 80px #f0f; } </style> |
一个好看的小球这不就出来了????????????
而且box-shadow还有几个特殊的关键字
具体解释意思就是
加个动画
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <style> body{ margin: 0; padding: 0; box-sizing: border-box; background-color: #000; } .box{ margin: 100px auto 0; width: 200px; height: 200px; border-radius: 50%; border: none; animation: redBall 6s linear infinite; background-color: rgb(0, 13, 255); box-shadow: 0 0 20px #fff,20px 0 80px rgb(0, 255, 191),-20px 0 80px rgb(0, 255, 81),inset 0 0 50px #fff,inset 200px 0 80px rgb(255, 234, 0); } @keyframes redBall{ 0%{ box-shadow: 0 0 20px #fff,20px 0 80px rgb(0, 255, 213),-20px 0 80px rgb(72, 255, 0),inset 0 0 50px #fff,inset -200px 0 80px rgb(0, 64, 255); } 50%{ box-shadow: 0 0 20px #fff,20px 0 80px rgb(0, 242, 255),-20px 0 80px rgb(17, 255, 0),inset 0 0 50px #fff,inset 0px 0 80px rgb(255, 0, 55); } 100%{ box-shadow: 0 0 20px #fff,20px 0 80px rgb(179, 255, 0),-20px 0 80px #0ff,inset 0 0 50px #fff,inset 200px 0 80px rgb(255, 0, 21),inset 10px 0 80px #0ff; } } </style> <body> <div class="box"></div> </body> </html> |
实现动态效果 (先录屏然后制作的gif图,会比较模糊,大家将就看吧)
总结:以上就是我对box-shadow属性的所有总结,希望对伙伴们有所帮助,学会一个算一个,喜欢的同学们可以一键三连,希望与大家共同分享共同进步,当然有什么问题也欢迎大家及时指正????????