之前发过一篇文章CSS实现优惠券的技巧,主要介绍了几种绘制优惠券的方法,尽管实现已经非常完美、非常灵活,不过还是有很多同学表示
"太巧妙了,不过我还是选择切图🤣”
为此,专门制作了这样一个在线 CSS 生成工具Coupon.io (codelabo.cn)
功能设计
首先最上面是几种优惠券的类型,从图标应该能大概看出具体的样式
每一种类型对应的自定义选项稍有不同,拿第一种类型举例来说
- Radius表示设置凹角的大小
- Direction表示设置凹角的方向,可选择水平和垂直
- Position表示设置凹角的相对位置,在水平情况下,可选择居上、居中、居下,在垂直情况下,可选择居左、居中、居右
- Offset表示表示设置凹角的偏移,这个偏移是相对于上面设置的相对位置来定的,在居中的情况下不可设置
调整完成后,点击复制按钮就可以复制在剪贴板上了(🎉 Copied to clipboard!)~
代码是自适应的,所以无需关注容器尺寸,兼容 Chrome 、Firefox、Safari 以及移动端
其实也不必看上面的说明,动动手指,随便点一下、拖一下大概就能明白什么意思了。
实战演示
现在就实际演示一下,比如这样一个布局
首先实现基本布局
<section class="card">
<div class="card-left">350书券</div>
<div class="card-right">
<p class="card-info">满30元送350书券</p>
<strong class="card-time">仅剩 04:48:49</strong>
</div>
</section>
可以看出,左边是固定尺寸,右边是自适应的,这里可以采用 flex 布局
.card{
display: flex;
align-items: center;
background: #fff;
border-radius: 8px;
}
.card-left{
width: 88px;
text-align: center;
font-size: 24px;
color: #F22424
}
.card-left span{
font-size: 10px;
}
.card-right{
padding: 16px 12px;
display: flex;
flex: 1;
flex-direction: column;
}
.card-info{
margin: 0;
font-size: 14px;
line-height: 20px;
color: rgba(33, 32, 44, 0.9);
}
.card-time{
font-size: 12px;
line-height: 16px;
font-weight: normal;
color: #F22424;
margin-top: 4px;
}
得到的效果如下
现在就通过在线工具添加凹角效果吧
因为有分割线效果,可以选择第二个类型,一番调试后,可以得到如下
现在复制生成的 CSS,直接添加在外层容器上
.card{
/*其他样式*/
-webkit-mask-image: radial-gradient(circle at 88px 4px, transparent 4px, red 4.5px), radial-gradient(closest-side circle at 50%, red 99%, transparent 100%);
-webkit-mask-size: 100%, 2px 4px;
-webkit-mask-repeat: repeat, repeat-y;
-webkit-mask-position: 0 -4px, 87px;
-webkit-mask-composite: source-out;
mask-composite: subtract;
}
得到效果如下
线上可访问 codepen coupon demo 查看
其他特性
该站点是一个PWA,如果使用 Chrome 或者 Edge 打开,可以选择“安装应用”
这样就可以像一个应用程序一样打开了,可离线使用~
其他说明
工具终究只是工具,不可能满足所有实际情况,在不满足的情况下,建议好好阅读这篇CSS实现优惠券的技巧,相信会有更多的体会
最后,有相关问题或意见,可以去XboxYan/coupon: 🎫 Generate Coupon-UI CSS code (github.com)提 issue,如果觉得不错的话,欢迎点赞、收藏、转发~❤️❤️❤️
祝大家使用愉快,enjoy~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。