当前位置:   article > 正文

css3实现优惠券效果(向内凹的圆)_css 优惠券内凹

css 优惠券内凹

背景色和自身(优惠券)的颜色会改变,实现向内凹的圆效果,效果图如下。如果叫设计师切好几十种背景图是很不现实的,只能用代码来实现,性能会比较好。随着背景色的改变,向内凹圆的背景色也要跟着变,因此,向内凹陷的部分只能设置成透明。

实现如下三种情况:

1、第一种情况(纯色)

自身(优惠券)的颜色是纯色的,这个实现起来比较简单,主要代码如下

  1. <div class="box"></div>
  2. .box{
  3. width: 160px;
  4. height: 100px;
  5. background-image: radial-gradient(circle at 9px 8px ,transparent 0%, transparent 8px,#e15852 8px, #e15852 100%);
  6. background-position: 121px -8px;
  7. background-size: 100% 100px;
  8. }

radial-gradient() 函数创建一个<image>,用来展示由原点(渐变中心)辐射开的颜色渐变。其语法是:

background: radial-gradient(shape size at position, start-color, ..., last-color);

background-position:圆画在优惠券的左边

background-size: (x,y)两个圆之间的距离

2、第二种情况(渐变,圆在左右两边)

可以把优惠券划分为三个部分:左边圆,中间主体,右边圆,主要代码如下:
 

  1. <div class="box1"></div>
  2. .box1 {
  3. width: 160px;
  4. height: 100px;
  5. background: radial-gradient(circle at 0 51px, transparent 15px, #fe8864 6px) top left, linear-gradient(0.25turn, #fe8864, #FE5151), radial-gradient(circle at 18px 51px, transparent 15px, #FE5151 16px) bottom right;
  6. background-size: 17px 100px, 116px 100px, 17px 100px;
  7. background-repeat: no-repeat;
  8. background-position: 10px 0px,26px 0px,142px 0px;
  9. }

左边圆的颜色取线性渐变的开始,右边圆的颜色取线性渐变颜色的结束值

3、第三种情况(渐变,圆在上下两边)

把优惠券分为四个部分,左边主体线性渐变,上圆,下圆,右边主体线性渐变,主要代码如下:

  1. <div class="box2"></div>
  2. .box2 {
  3. width: 160px;
  4. height: 100px;
  5. background: linear-gradient(0.25turn, #fe8864, #FE5151), radial-gradient(circle at 11px 4px, transparent 6px, #FE5151 6px) top left, radial-gradient(circle at 10px 56px, transparent 6px, #FE5151 6px) bottom left, linear-gradient(0.25turn, #FE5151, #fe434c);
  6. background-size: 120px 82px, 20px 50px, 20px 57px, 32px 84px;
  7. background-repeat: no-repeat;
  8. background-position: 0px 0px,120px -4px, 120px 26px, 140px 0px;
  9. }

上圆的下圆的颜色值是取圆所在位置的值,右边主体线性渐变再从圆的颜色值开始到结束的颜色值

转载于:css3实现优惠券效果(向内凹的圆)_css 优惠券内凹_菠萝香的博客-CSDN博客

  1. <div class="base-coupons">示例</div>
  1. .base-coupons {
  2. width: 100%;
  3. height: 100px;
  4. /* 重点代码 */
  5. background: radial-gradient(circle at left bottom, transparent 10px, #0ff 0) top left / 50% 70% no-repeat, radial-gradient(circle at left top, transparent 10px, #cf9236 0) bottom left /50% 31% no-repeat, radial-gradient(circle at right bottom, transparent 10px, #ff00ff 0) top right /50% 70% no-repeat, radial-gradient(circle at right top, transparent 10px, #3a8ee6 0) bottom right /50% 31% no-repeat;
  6. border-radius: 10px;
  7. }

css实现各种优惠券效果

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <style>
  9. .coupon { width: 240px; height: 100px; margin-top: 15px; background-color: #F56C6C; -webkit-mask: radial-gradient(circle at left center, transparent 20px, red 20px); }
  10. .coupon2 { width: 240px; height: 100px; margin-top: 15px; background-color: #F56C6C; -webkit-mask: radial-gradient(circle at 0, #0000 20px, red 0), radial-gradient(circle at right, #0000 20px, red 0); -webkit-mask-size: 51%; -webkit-mask-position: 0, 100%; -webkit-mask-repeat: no-repeat;}
  11. .coupon3 { width: 240px; height: 100px; margin-top: 15px; background-color: #F56C6C; -webkit-mask: radial-gradient(circle at 20px, #0000 20px, red 0); }
  12. .coupon4 { width: 240px; height: 100px; margin-top: 15px; background-color: #F56C6C; -webkit-mask: radial-gradient(circle at 20px 20px, #0000 20px, red 0); -webkit-mask-position: -20px -20px;}
  13. /* 缩写 */
  14. .coupon4-1 { -webkit-mask: radial-gradient(circle at 20px 20px, #0000 20px, red 0) -20px -20px; }
  15. .coupon5 { width: 240px; height: 100px; margin-top: 15px; background-color: #F56C6C; -webkit-mask: radial-gradient(circle at 20px 20px, #0000 20px, red 0); -webkit-mask-position: -20px -20px; -webkit-mask-size: 50%;}
  16. /* 缩写 */
  17. .coupon5-1{ -webkit-mask: radial-gradient(circle at 20px 20px, #0000 20px, red 0) -20px -20px / 50%; }
  18. .coupon6 { width: 240px; height: 100px; margin-top: 15px; background-color: #F56C6C; -webkit-mask: radial-gradient(circle at 10px, #0000 10px, red 0); -webkit-mask-position: -10px; -webkit-mask-size: 100% 30px;}
  19. .coupon7 { width: 240px; height: 100px; margin-top: 15px; background-color: #F56C6C; -webkit-mask: radial-gradient(circle at 50%, red 5px, #0000 0) 50% 50% / 100% 20px, radial-gradient(circle at 20px 20px, #0000 20px, red 0) -20px -20px / 50%; -webkit-mask-composite: destination-out; mask-composite: subtract; /*Firefox*/}
  20. .coupon8 { width: 240px; height: 100px; margin-top: 15px; background-color: #F56C6C; -webkit-mask: radial-gradient( circle at 5px, red 5px, #0000 0) -5px 50% / 100% 20px, radial-gradient(circle at 20px 20px, #0000 20px, red 0) -20px -20px / 50%; -webkit-mask-composite: destination-out; mask-composite: subtract; /*Firefox*/}
  21. </style>
  22. <div class="coupon"></div>
  23. <div class="coupon2"></div>
  24. <div class="coupon3"></div>
  25. <div class="coupon4"></div>
  26. <div class="coupon4-1"></div>
  27. <div class="coupon5"></div>
  28. <div class="coupon5-1"></div>
  29. <div class="coupon6"></div>
  30. <div class="coupon7"></div>
  31. <div class="coupon8"></div>
  32. </body>
  33. </html>

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

闽ICP备14008679号