css绘制卡券优惠券_如何使用css创建一个优惠券

需求场景

添加优惠券类目,展示用户的优惠券

常见的设计样式如下图,核心为半圆

分步拆解

优惠券的特点是带有反向圆角,为了展示效果更好,适配多种场景,不推荐使用背景图片形式,建议使用css.

网上有几种方案:

一种是boder+clip的形式,裁剪出4个小半圆角,拼凑在一起

一种是radial-gradient径向渐变,相对上一种需要考虑其兼容性

一种是使用背景图片,特点是加载稍慢,体验比css差,兼容性好

具体的代码这里就不一一演示了

注意细节

有一点要说明的是:

一定要注意细节,就像考虑到兼容性和带宽以及加载时长一样,我们也要为以后可能的变动留有空间.

前两种方案的特点是左右的容器都有背景色,且半圆的边框色是有背景色截取而获得的.

当我们需要指定半圆的边框和其他边框颜色同时变换不同背景色的时候呢?

参考下图:

边框色和背景色可以是不一致的,并且整个边框颜色可以保持一致,而这些,上述两种方法不论是border还是gradient显然不行.

其他方法

优惠券的样式是两部分拼接在一起,同时带有半圆样式

那么我们的思路可以是:

创建一个盒子,包含左右两个卡券部分,卡券背景色各自定义

盒子上盖上两个半圆,一个在顶部,一个在底部,背景色为白色

卡券和半圆的边框都可以自定义,同色使用一个色号即可

直接使用css创建一个嵌有半圆的边框不太现实,但是我们可以通过其他方法达到视觉上的实现.

中间需要一些空间思维和想象能力,过程可能复杂些,但是能实现目的就行,另辟蹊径的效果更好.

创建一个总容器

容器控制卡券的宽高和布局上位置,不带有其他样式

创建左右卡券

添加两个容器,一个放左边,一个放右边,割分总容器空间

左边容器单独设置左上和左下两个圆角,右边容器单独设置右上和右下两个圆角

左右容器各自设置自定义背景色

贴上半圆

添加两个半圆,背景色为白色,边框待定

相对总容器绝对定位,一个放顶部,一个放底部

偏移量自定义,保持一致即可

到这一步就完成了最初的样式,接下来到了设置边框的时间

设置边框

给左右卡券容器和两个半圆添加边框即可,不影响背景色

制作半圆

核心是制作半圆(只有轮廓)

// 上半圆

.circle{

width: 200px;

height: 100px; /* 宽度的一半 */

border-radius:100px 100px 0 0; /* 上和右为高度的长度 */

background-color: #fff;

border: 1px solid gray;

border-bottom: none;

}

// 下半圆

.circle{

width: 200px;

height: 100px; /* 宽度的一半 */

border-radius: 0 0 100px 100px; /* 上和右为高度的长度 */

background-color: #fff;

border: 1px solid gray;

border-bottom: none;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值