CSS不用背景图片实现优惠券样式反圆角,凹圆角,反向半圆角,并且背景渐变
日常开发过程中,特别是商城相关应用开发过程中,时常会遇到花里胡哨的设计图,比如优惠券样式,上图:
实现思路如下:
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不用背景图片实现优惠券样式反圆角,凹圆角,反向半圆角,并且背景渐变的更多相关文章
- CSS background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- css代码添加背景图片常用代码
css代码添加背景图片常用代码 1 背景颜色 { font-size: 16px; content: ""; display: block; width: 700px; heigh ...
- vue打包后CSS中引用的背景图片不显示问题
vue项目中,在css样式中引用了一张背景图片,开发环境下是可以正常显示,build之后背景图片不显示. 解决方法: 找到build/utils.js文件 修改成为如下所示内容: 添加红框中的内容即 ...
- CSS背景颜色、背景图片、平铺、定位、固定
CSS背景颜色设置 background-color:red;如设置背景颜色为红色: 背景颜色设置支持3种写法: 颜色名 16进制 rgb CSS背景图片颜色设置 background-image:u ...
- 如何通过CSS实现背景图片自动平铺或拉伸至整个屏幕(自适应大小)
默认情况下,通过HTML代码的BODY标签设置好背景图片<body background="x.jpg"> 后,图片会自动横向和纵向平铺.这就会产生一些美观上的问题. ...
- css网页中设置背景图片的方法详解
在css代码中设置背景图片的方法,包括背景图片.背景重复.背景固定.背景定位等 用css设置网页中的背景图片,主要有如下几个属性: 1,背景颜色 {">说明:参数取值和颜色属性一样 ...
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- css-sprite 雪碧图的使用,合并多张小图,背景图片当按钮的设置
背景图片基础: 使用background-image来设置背景图片 语法: background-image:url(相对与css的路径) 如果背景图片大于元素,默认会显示图片的左上角 如果背景图片和 ...
- qt 设置背景图片
博客出处:http://www.cppblog.com/qianqian/archive/2010/07/25/121238.htm 工作似乎走上正轨了,上周五的工作是做一个界面,用到QFrame和Q ...
随机推荐
- MySQL索引的使用是怎么样的?5个点轻松掌握!
一.前言 在MySQL中进行SQL优化的时候,经常会在一些情况下,对MySQL能否利用索引有一些迷惑. 譬如: MySQL 在遇到范围查询条件的时候就停止匹配了,那么到底是哪些范围条件? MySQL ...
- 精尽Spring MVC源码分析 - RequestToViewNameTranslator 组件
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...
- 用Python批量裁取图,来获取文件夹中所有图片名
批量截图(截取正方形图,哪个边短就用哪个边作为标准来截取) 功能是裁取图片中红色框的部分. 代码为: import sys from tkinter.tix import Tk from PIL im ...
- 你真的理解了java单例模式吗?讲别人都忽略的细节!
前言:老刘这篇文章敢做保证,java的单例模式讲的比大多数的技术博客都要好,讲述别人技术博客都没有的细节!!! 1 java单例模式 直接讲实现单例模式的两种方法:懒汉式和饿汉式,单例模式的概念自己上 ...
- Autofac的基本使用---2、普通类型
Autofac的基本使用---目录 准备 使用的表是Student,创建相关的IDAL.DAL.IBLL.BLL层. 使用EF,创建一个Model层,存放edmx文件. 控制台程序的使用 using ...
- (四)、vim的缓冲区、标签、窗口操作
1.缓冲区的基本操作 a.文件与缓冲区的区别 vim file1 打开一个文件时,其实是从磁盘中读取文件到内存中,文件的内容会被加载到缓冲区中, 这个缓冲区在一个窗口上显示,所以他是一个已激活的缓 ...
- 容器编排系统K8s之NetworkPolicy资源
前文我们了解了k8s的网络插件flannel的基础工作逻辑,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14225657.html:今天我们来聊一下k8s上 ...
- C++语言基础——01一切的开始
环境准备 集成开发环境(Integrated Development Environment,IDE) 竞赛中最常见的是Dev-C++,平时练习采用其他IDE也可,使用方法都是类似的. 编译器 推荐使 ...
- C语言实现九大排序算法
C语言实现九大排序算法 直接插入排序 折半插入排序 希尔排序 冒泡排序 快速排序 直接选择排序 堆排序 归并排序 基数排序 C语言实现九大排序算法 直接插入排序 将数组分为两个部分,一个是有序部分,一 ...
- java调用js代码
jdk8里使用脚本引擎调用js 1.定义一个js方法: function getRouteInfo(province){ //注意,参数不要带var..在java里执行会报错.. if (provin ...