如何使用css创建一个优惠券

2019-10-20 admin

需求场景

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

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

img

分步拆解

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

网上有几种方案:

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

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

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

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

参考其他网上内容:https://segmentfault.com/a/1190000015705604

注意细节

有一点要说明的是:

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

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

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

参考下图:

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

img

其他方法

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

那么我们的思路可以是:

  • 创建一个盒子,包含左右两个卡券部分,卡券背景色各自定义
  • 盒子上盖上两个半圆,一个在顶部,一个在底部,背景色为白色
  • 卡券和半圆的边框都可以自定义,同色使用一个色号即可

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

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

创建一个总容器

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

img

创建左右卡券

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

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

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

img

贴上半圆

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

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

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

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

img

设置边框

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

img

制作半圆

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

<div class="circle"></div>
// 上半圆
.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;
}

[转载]原文链接:https://segmentfault.com/a/1190000020741798

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-77807.html

文章标题:如何使用css创建一个优惠券

相关文章
12个你未必知道的CSS小知识
虽然CSS并不是一种很复杂的技术,但就算你是一个使用CSS多年的高手,仍然会有很多CSS用法/属性/属性值你从来没使用过,甚至从来没听说过。 1.CSS的color属性并非只能用于文本显示 对于CSS的color属性,相信所有Web开发人员...
2015-11-12
零基础-5小时开发一个electron应用-[实践]
一、背景 三、技能升级 ​ 明明可以用颜值取胜,非要靠才华?不对,明明可以用代码搞定,非要搞设计?步入正题,正好最近对electron比较感兴趣,又是要做工具,那就直接怼 1.electron介绍 ​ electron最开始不叫这个名字,叫...
2017-12-26
使用jspdf生成pdf报表
由于前台html已经动态生成报表,而且,前台有一个功能,一个date range组件,当你拖动的时候,报表会在不提交到后台的情况下动态变化。 因此需要用到js生成生报表: 用到的组件: jquery.js jspdf.js canvg.js...
2017-03-25
必须记住的 30 类 CSS 选择器
开篇 有 30 个 CSS 选择器你必须烂熟于心,它们适应于当今各大主流浏览器。 1.* * { margin: 0; padding: 0; } *选择器选择的是每一个单一元素。很多程序员用上面的 CSS 将所有元素的 ma...
2015-11-16
使用axios发送post请求,body传送数据格式form和json区别
先来看看这两个种传送格式的写法 1.form格式,将Content-Type类型设置为application/x-www-form-urlencode,POST请求时将data序列化,提交的数据会按照 key1=val1&amp;key2=...
2018-07-25
CSS2.0帮助文档(参考手册)chm下载
下载地址:CSS2.0帮助文档(参考手册)chm下载 友情提示:如果打开空白,在手册上右键属性解除锁定即可。 ...
2015-11-12
梳理前端开发使用eslint-prettier检查和格式化代码
问题痛点 在团队的项目开发过程中,代码维护所占的时间比重往往大于新功能的开发。因此编写符合团队编码规范的代码是至关重要的,这样做不仅可以很大程度地避免基本语法错误,也保证了代码的可读性。 对于代码版本管理系统(svn 和 git或者其他)...
2018-05-07
如何为高负载网络优化Nginx 和 Node.js?
译者:AlfredCheung 在搭建高吞吐量web应用这个议题上,NginX和Node.js可谓是天生一对。他们都是基于事件驱动模型而设计,可以轻易突破Apache等传统web服务器的C10K瓶颈。预设的配置已经可以获得很高的并发,不过,...
2015-11-12
jQuery中DOM树操作之使用反向插入方法实例分析
本文实例讲述了jQuery中DOM树操作之使用反向插入方法。分享给大家供大家参考。具体分析如下: 使用反向插入方法 这里我们先把创建的内容插人到元素前面,然后再把同一个元素插人到文档 中的另一个位置。通常,当在jQuery中操作元素时,利用...
2015-11-13
可以从CSS框架中借鉴到什么
现在很多人会使用 CSS 框架进行快速建站。   那 CSS 框架是什么呢,它通常是一些 CSS 文件的集合,这些文件包括基本布局、表单样式、网格、简单组件、以及样式重置。使用 CSS 框架大大降低工作成本进行快速建站。   当然对于一些大...
2016-03-11
回到顶部