css3box-shadow单边阴影
1.单边阴影效果
定义元素的单边阴影效果和调协border的单边边框颜⾊是相似的,例如:
1. >
2. <html lang="en-US">
3. <head>
box shadow怎么设置4. <meta charset="UTF-8">
5. <title>box-shadow设置单边阴影效果title>
6. <style type="text/css">
7. .box-shadow {
8. width: 200px;
9. height: 100px;
10. border-radius: 5px;
11. border: 1px solid #ccc;
12. margin: 20px;
13. }
14. .top {
15. box-shadow: 0 -2px 0 red;
16. }
17. .right {
18. box-shadow: 2px 0 0 green;
19. }
20. .bottom {
21. box-shadow: 0 2px 0 blue;
22. }
23. .left {
24. box-shadow: -2px 0 0 orange;
25. }
26. style>
27. head>
28. <body>
29. <div class="box-shadow top">div>
30. <div class="box-shadow right">div>
31. <div class="box-shadow bottom">div>
32. <div class="box-shadow left">div>
33. body>
34. html>
效果如图3-38所⽰。
这个案例中,使⽤box-shadow给元素设置了顶边、右边、底边和左边的单边阴影效果。主要通过box-shadow的⽔平和垂直阴影的偏移量来实现,其中x-offset为正值时,⽣成右边阴影,反之为负值时,⽣成左边阴影;y-offset为正值时,⽣成底部阴影,反之为负值时⽣成顶部阴影。此例中是⼀个单边实影投影效果(阴影模糊半径为0),但是如果阴影的模糊半径不是0,上⾯的⽅法还能不能实现单边阴影效果呢?不急着来回答,在上⾯的实例中添加⼀个模糊半径,例如:
1. .top {
2. box-shadow: 0 -2px 5px red;
3. }
4. .right {
5. box-shadow: 2px 0 5px green;
6. }
7. .bottom {
8. box-shadow: 0 2px 5px blue;
9. }
10. .left {
11. box-shadow: -2px 0 5px orange;
12. }
图3-39说明,这个效果并不是理想的单边阴影效果,当box-shadow添加了5px阴影模糊半径后,阴影不再是实影投影,阴影清晰度向外扩散,更具阴影的效果。但造成了另⼀个问题,给元素其他三个边加上淡淡的阴影效果,可这并不是设计需要的效果。
那究竟要怎么做呢?此时,box-shadow属性中的阴影扩展半径(spread-radius)会是⼀个很关键的属性,要实现单边阴影效果,必须配上这个属性(除单边实影之外)。
1. .top {
2. box-shadow: 0 -4px 5px -3px red;
3. }
4. .right {
5. box-shadow: 4px 0 5px -3px green;
6. }
7. .bottom {
8. box-shadow: 0 4px 5px -3px blue;
9. }
10. .left {
11. box-shadow: -4px 0 5px -3px orange;
12. }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论