当前位置:   article > 正文

CSS3实现曲线阴影和翘边阴影_css环绕阴影

css环绕阴影

效果图如下:


index.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>CSS3实现曲线阴影和翘边阴影</title>
  6. <style>
  7. /*源于imooc的学习*/
  8. body {
  9. font-family: "微软雅黑", "Microsoft YaHei";
  10. font-size: 20px;
  11. }
  12. body, ul, li, h1 {
  13. padding: 0;
  14. margin: 0;
  15. }
  16. ul {
  17. list-style: none outside none;
  18. }
  19. .wrap {
  20. width: 70%;
  21. height: 200px;
  22. margin: 50px auto;
  23. background-color: #fff;
  24. }
  25. .wrap h1 {
  26. font-size: 40px;
  27. text-align: center;
  28. line-height: 200px;
  29. }
  30. /**
  31. * box-shadow
  32. * 功能:添加一个或多个阴影
  33. * 语法:box-shadow: h-shadow v-shadow blur spread color inset;
  34. * 参数:
  35. * h-shadow(必需):水平阴影的位置。允许负值。
  36. * v-shadow(必需):垂直阴影的位置。允许负值。
  37. * blur(可选):模糊程度,值越大越模糊。
  38. * spread(可选):阴影的尺寸。一般不推荐设置。
  39. * color(可选):阴影的颜色。请参阅CSS颜色值。
  40. * inset(可选):将外部阴影(outset)改为内部阴影。
  41. * 浏览器兼容:
  42. * IE9+、Firefox 4、Chrome、Opera以及Safari 5.1.1支持box-shadow属性。
  43. */
  44. .effect {
  45. position: relative;
  46. /*box-shadow: h-shadow v-shadow blur color [inset];*/
  47. -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
  48. -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
  49. -o-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
  50. box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
  51. }
  52. /**
  53. * :after选择器:在被选元素的内容后面插入内容
  54. * :before选择器:在备选元素额内容后面插入内容
  55. * 说明:需要使用content属性来指定要插入的内容
  56. * 浏览器兼容:
  57. * 对于IE8及更早版本的:after,必须声明<!DOCTYPE>。
  58. *
  59. * content属性用于定义元素之前或之后放置的生成内容。默认地,这往往是行内内容,不过该内容创建的
  60. * 框类型可以用属性display控制。
  61. */
  62. .effect::after,.effect::before {
  63. content: '';
  64. background: #f00;
  65. position: absolute;
  66. top: 50%;
  67. bottom: 0;
  68. left: 20px;
  69. right: 20px;
  70. -webkit-box-shadow: 0 0 20px rgba(0,0,0,0.8);
  71. -moz-box-shadow: 0 0 20px rgba(0,0,0,0.8);
  72. -o-box-shadow: 0 0 20px rgba(0,0,0,0.8);
  73. box-shadow: 0 0 20px rgba(0,0,0,0.8);
  74. border-radius: 100px/10px; /*水平半径/垂直半径*/
  75. z-index: -1;
  76. }
  77. .box {
  78. width: 980px;
  79. height: auto;
  80. clear: both;
  81. overflow: hidden;
  82. margin: 20px auto;
  83. }
  84. .box li {
  85. width: 300px;
  86. height: 210px;
  87. float: left;
  88. margin: 20px 10px;
  89. border: 2px solid #EFEFEF;
  90. -webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.27), 0 0 60px rgba(0,0,0,0.1) inset;
  91. -moz-box-shadow: 0 1px 4px rgba(0,0,0,0.27), 0 0 60px rgba(0,0,0,0.1) inset;
  92. -o-box-shadow: 0 1px 4px rgba(0,0,0,0.27), 0 0 60px rgba(0,0,0,0.1) inset;
  93. box-shadow: 0 1px 4px rgba(0,0,0,0.27), 0 0 60px rgba(0,0,0,0.1) inset;
  94. position: relative;
  95. background-color: #FFF;
  96. }
  97. .box li img {
  98. display: block;
  99. width: 290px;
  100. height: 200px;
  101. margin: 5px;
  102. }
  103. .box li:before {
  104. content: '';
  105. position: absolute;
  106. width: 90%;
  107. height: 80%;
  108. left: 20px;
  109. bottom: 8px;
  110. /*background-color: #F00;*/
  111. background-color: transparent;
  112. box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  113. -webkit-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  114. -moz-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  115. -o-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  116. /**
  117. * transform
  118. * 功能:向元素应用2D或3D转换
  119. * 语法:transform: none|transform-functions
  120. * 参数:
  121. * skew(x-angle,y-angle) 定义沿着X和Y轴的2D倾斜转换
  122. * skewX(angle) 定义沿着X轴的2D倾斜转换。
  123. * skewY(angle) 定义沿着y轴的2D倾斜转换。
  124. * 浏览器兼容:
  125. * Internet Explorer 9支持替代的-ms-transform属性(仅适用于2D转换)
  126. * Safari和Chrome支持替代的-webkit-transform属性(3D和2D转换)
  127. * Opera只支持2D转换。
  128. */
  129. -webkit-transform: skewX(-11deg) rotate(-4deg);
  130. -moz-transform: skewX(-11deg) rotate(-4deg);
  131. -ms-transform: skewX(-11deg) rotate(-4deg);
  132. -o-transform: skewX(-11deg) rotate(-4deg);
  133. transform: skewX(-11deg) rotate(-4deg);
  134. z-index: -1;
  135. }
  136. .box li:after {
  137. content: '';
  138. position: absolute;
  139. width: 90%;
  140. height: 80%;
  141. right: 20px;
  142. bottom: 8px;
  143. background-color: transparent;
  144. box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  145. -webkit-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  146. -moz-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  147. -o-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  148. -webkit-transform: skewX(11deg) rotate(4deg);
  149. -moz-transform: skewX(11deg) rotate(4deg);
  150. -ms-transform: skewX(11deg) rotate(4deg);
  151. -o-transform: skewX(11deg) rotate(4deg);
  152. transform: skewX(11deg) rotate(4deg);
  153. z-index: -1;
  154. }
  155. </style>
  156. </head>
  157. <body>
  158. <div class="wrap effect">
  159. <h1>Shadow Effect</h1>
  160. </div>
  161. <ul class="box">
  162. <li><img src="images/1.jpg" alt="1.jpg"></li>
  163. <li><img src="images/2.jpg" alt="2.jpg"></li>
  164. <li><img src="images/3.jpg" alt="3.jpg"></li>
  165. </ul>
  166. </body>
  167. </html>



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/266104
推荐阅读
  

闽ICP备14008679号