日常开发过程中,特别是商城相关应用开发过程中,时常会遇到花里胡哨的设计图,比如优惠券样式,上图:

实现思路如下:

    1.先写一个外容器,实现背景色渐变:

Html:

1 <div class="coupon">
2 </div>

Css:

 1 .coupon {
2 width: 600px;
3 height: 110px;
4 background: -webkit-linear-gradient(left, #d34b5a, #c64765);
5 background: -o-linear-gradient(left, #d34b5a, #c64765);
6 background: -moz-linear-gradient(left, #d34b5a, #c64765);
7 border-radius: 16px;
8 display: flex;
9 flex-direction: row;
10 }

效果:

    2.里面写左右两个容器,分别放置文本和按钮:

Html:

1 <div class="coupon">
2 <div class="coupon_text">
3 优惠券<text>¥20</text>
4 <span>使用期限:2021.01.21-2021.02.21</span>
5 </div>
6 <div class="coupon_btn">
7 <span>立即领取</span>
8 </div>
9 </div>

Css:

 1 .coupon_text {
2 flex: 1;
3 color: white;
4 padding: 25px 30px 20px 40px;
5 font-size: 20px;
6 position: relative;
7 }
8
9 .coupon_text > b {
10 font-size: 30px;
11 }
12
13 .coupon_text > div {
14 font-size: 15px;
15 }
16
17 .coupon_btn {
18 border: none;
19 height: 110px;
20 line-height: 110px;
21 padding: 0 40px;
22 }
23
24 .coupon_btn > span {
25 background: -webkit-linear-gradient(top, #fae8e9, #f2a799);
26 background: -o-linear-gradient(top, #fae8e9, #f2a799);
27 background: -moz-linear-gradient(top, #fae8e9, #f2a799);
28 padding: 10px 20px;
29 vertical-align: middle;
30 font-size: 24px;
31 border-radius: 30px;
32 color: #E41F19;
33     }

效果:

   3.画圆角和虚线:

我们在 .coupon_text 样式里添加css代码:

1       background-image: radial-gradient(circle at right top, #fff, #fff 15px, transparent 16px), 
radial-gradient(circle at right bottom, #fff, #fff 15px, transparent 16px);
2 border-right: 1px dashed #FFF;

再在 .coupon_btn 样式里添加如下代码:

1       background-image: radial-gradient(circle at left top, #fff, #fff 15px, transparent 16px), 
radial-gradient(circle at left bottom, #fff, #fff 15px, transparent 16px);

查看效果:

这个……好像和想象中有点不一样呀,不仅有白色的虚线,为啥还有红色的虚线呢?

那是因为前面我们外层class为coupon的div,设置了背景色,上层div的边框在虚线的地方是透明的,所以会间断显示红色背景,就成为我们看到的红色虚线了;

    在这里提供一个逼死强迫症的解决方案:

    把class为coupon_btn的div,向左移动1px;

.coupon_text {
margin-right: -1px;
} /* 或者 */ .coupon_btn {
margin-left: -1px;
}

    即可看到我们想要的效果:

    当然,实现上述设计图的方法有很多,欢迎交流~

OK,搞定收工,拿碗排队打饭!

如果有帮助到你,可以的话请帮我点个赞吧,谢谢~

CSS不用背景图片实现优惠券样式反圆角,凹圆角,反向半圆角,并且背景渐变的更多相关文章

  1. CSS background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  2. css代码添加背景图片常用代码

    css代码添加背景图片常用代码 1 背景颜色 { font-size: 16px; content: ""; display: block; width: 700px; heigh ...

  3. vue打包后CSS中引用的背景图片不显示问题

    vue项目中,在css样式中引用了一张背景图片,开发环境下是可以正常显示,build之后背景图片不显示. 解决方法: 找到build/utils.js文件 修改成为如下所示内容:  添加红框中的内容即 ...

  4. CSS背景颜色、背景图片、平铺、定位、固定

    CSS背景颜色设置 background-color:red;如设置背景颜色为红色: 背景颜色设置支持3种写法: 颜色名 16进制 rgb CSS背景图片颜色设置 background-image:u ...

  5. 如何通过CSS实现背景图片自动平铺或拉伸至整个屏幕(自适应大小)

    默认情况下,通过HTML代码的BODY标签设置好背景图片<body background="x.jpg"> 后,图片会自动横向和纵向平铺.这就会产生一些美观上的问题. ...

  6. css网页中设置背景图片的方法详解

    在css代码中设置背景图片的方法,包括背景图片.背景重复.背景固定.背景定位等   用css设置网页中的背景图片,主要有如下几个属性: 1,背景颜色 {">说明:参数取值和颜色属性一样 ...

  7. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  8. css-sprite 雪碧图的使用,合并多张小图,背景图片当按钮的设置

    背景图片基础: 使用background-image来设置背景图片 语法: background-image:url(相对与css的路径) 如果背景图片大于元素,默认会显示图片的左上角 如果背景图片和 ...

  9. qt 设置背景图片

    博客出处:http://www.cppblog.com/qianqian/archive/2010/07/25/121238.htm 工作似乎走上正轨了,上周五的工作是做一个界面,用到QFrame和Q ...

随机推荐

  1. 聊聊自学大数据flume中容易被人忽略的细节

    ​前言:老刘不敢保证说的有多好,但绝对是非常良心地讲述自学大数据开发路上的一些经历和感悟,保证会讲述一些不同于别人技术博客的细节. 01 自学flume的细节 老刘现在想写点有自己特色的东西,讲讲自学 ...

  2. Python3和高性能全文检索引擎Redisearch进行交互

    安装 pip install redisearch 使用 from redisearch import Client, TextField # 创建一个客户端与给定索引名称 client = Clie ...

  3. C# 生成图片验证码 图片缩略图 水印

    using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D ...

  4. 【磁盘/文件系统】第五篇:CentOS7.x__btrfs文件系统详解

    前言: Btrfs文件系统是CentOS7.x系列系统上的技术预览版,但是现在还是有公司在使用. btrfs 文件系统(又称B-tree.Butter FS.Better FS等文件系统)   理解b ...

  5. React组件的state和props

    React组件的state和props React的数据是自顶向下单向流动的,即从父组件到子组件中,组件的数据存储在props和state中.实际上在任何应用中,数据都是必不可少的,我们需要直接的改变 ...

  6. Redis基础篇(三)持久化:AOF日志

    Redis是内存数据库,但是一旦服务器宕机,内存中的数据将会全部丢失. 最简单的恢复方式是从后端数据库恢复,但这种方式有两个问题: 频繁访问数据库,会给数据库带来巨大的压力: 从数据库中读取相比从Re ...

  7. 为什么游戏公司的server不愿意微服务化?

    背景介绍 笔者最近去面试了家游戏公司(有上市).我问他,公司有没有做微服务架构的打算及考量?他很惊讶的,我没听说过微服务耶,你可以解释一下吗? 我大概说了,方便测试,方便维护,方便升级,服务之间松耦合 ...

  8. Linux腾讯云下安装mysql

    百度云盘下载地址https://pan.baidu.com/s/1MqUEdeqZuQbq-veLuVItQQ 将下载好的mysql-5.7.14-linux-glibc2.5-x86_64.tar. ...

  9. 腾讯云联合多家生态伙伴,重磅开源 SuperEdge 边缘容器项目

    在2020年12月19-20日腾讯 Techo Park 开发者大会上,腾讯云联合英特尔.VMware 威睿.虎牙.寒武纪.美团.首都在线,共同发布 SuperEdge 边缘容器开源项目. Super ...

  10. GraduateDesign-初试APP编写(去除虚拟按键和禁止状态栏下拉)

    为了毕设的要求,需要在Android系统上运行一个app来控制硬件,今天开始这个app的编写. 首先,我们的系统将只运行这个app,也就是我们不需要状态栏,虚拟按键等. 故这里将app设置为全屏模式. ...