您现在的位置是:网站首页> 编程资料编程资料
CSS 使用radial-gradient 实现优惠券样式使用css创建一个优惠券的方法利用css3径向渐变做一张优惠券的示例CSS实现优惠券边沿打孔效果纯css3绘制的精美购物优惠券样式效果源码
2021-09-03
1144人已围观
简介 这篇文章主要介绍了CSS 使用radial-gradient 实现优惠券样式,本文通过实例代码讲解的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
本文将介绍如何使用 css 中的 radial-gradient 实现如下图所示的优惠券样式效果:
绘制基本样式
首先,我们绘制出优惠券的基本样式,这很简单,就不多说了。
/* scss */ .voucher { width: 600px; height: 200px; display: flex; .left { width: 30%; height: 100%; background-color: #f76260; } .right { height: 100%; border: 1px solid #ddd; flex: 1; display: flex; align-items: center; justify-content: center; font-size: 40px; } }满 100 减 30
锯齿实现剖析
锯齿部分其实可以看成是十个如下所示的图像片段拼接起来的。每个片段的宽为锯齿的半径 6px,高为 20px。所以我们只需要画出该片段,剩下的重复填充就好了。
我们把锯齿的样式加在 voucher 的伪元素上面就大功告成了:
&::before { content: ''; position: absolute; height: 100%; width: 6px; left: 0; top: 0; background-image: radial-gradient(circle at 0px 10px, white 6px, #f76260 6px); background-size: 6px 20px; }
这里的核心代码是 background-image: radial-gradient(circle at 0px 10px, white 6px, #f76260 6px); 。它其实是下面这种写法的简写方式: background-image: radial-gradient(circle at 0px 10px, white 0, white 6px, #f76260 6px, #676260 100%); ,表示从 (0px, 10px) 的位置开始进行径向渐变,渐变的形状为圆形,从 0 到 6px 由 white 渐变成 white ,也就是纯色; 6px 到图形边缘由 #f76260 渐变成 #f76260 ,也是纯色。
为了重用我们的锯齿样式代码,我们可以定义一个 scss 的 mixin:
/** * 为了实现比较好的效果,最好确保: * 1. $height 可以被 $num 整除 * 2. 2 * $radius < $height / $num */ @mixin leftSawtooth($height, $num, $radius, $color, $bgColor) { $segmentHeight: $height / $num; height: $height; &::before { content: ''; position: absolute; height: 100%; width: $radius; left: 0; top: 0; background-image: radial-gradient(circle at 0px $segmentHeight / 2, $bgColor $radius, $color $radius); background-size: $radius $segmentHeight; } }
这样,用起来就很方便了:
@include leftSawtooth(600px, 10, 6px, #f76260, white);
升级版
升级版的锯齿颜色和左边部分的背景颜色不一致,实现上会有些差异,不过思路还是一致的。
首先还是绘制出基本的样式:
.voucher { width: 600px; height: 200px; margin: 20px auto; display: flex; position: relative; border: 1px solid #ddd; .left { width: 30%; height: 100%; border-right: 1px dashed #ddd; } .right { height: 100%; flex: 1; display: flex; align-items: center; justify-content: center; font-size: 40px; } }然后,绘制锯齿部分。注意,这里圆的半径是空白部分5px加上1px的边框,所以背景片段绘制需要额外加一段渐变:
background-image: radial-gradient(circle at 0px 10px, white 5px, /* 圆内的颜色是背景色 */ #ddd 5px, #ddd 6px, transparent 6px /* 圆外的颜色是透明色 */ );
注意到我们把圆内的颜色设置为背景色,圆外的颜色设置为透明色,为什么要这样后面会有说明。现在的效果离目标已经越来越近了,不过还是有点出入:
解决办法是把伪元素往左移动一个边框大小的位置。这样半圆左边的线会被圆内的颜色覆盖,而其他地方因为是透明色,所以线会保留(这就是为什么要把圆内的颜色设置为背景色,圆外的颜色设置为透明色的原因了)。
完整的 mixin 如下所示:
@mixin leftSawtoothBorder($height, $num, $radius, $bgColor, $borderColor, $borderWidth) { $segmentHeight: $height / $num; $extendedRadius: $radius + $borderWidth; height: $height; &::before { content: ''; position: absolute; height: 100%; width: $extendedRadius; left: -$borderWidth; top: 0; background-image: radial-gradient(circle at 0px $segmentHeight / 2, $bgColor $radius, $borderColor $radius, $borderColor $extendedRadius, transparent $extendedRadius ); background-size: $extendedRadius $segmentHeight; } }总结
以上所述是小编给大家介绍的CSS 使用radial-gradient 实现优惠券样式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关内容
- webpack加载css文件及其配置方法Webpack 中 css import 使用 alias 相对路径的方法
- CSS3实现酷炫的3D旋转透视效果CSS3让登陆面板3D旋转起来CSS3 3D旋转rotate效果实例介绍 CSS3近阶段篇之酷炫的3D旋转透视 CSS3实现的一款迷人3D木块旋转动画
- CSS实现鼠标移至图片上显示遮罩层效果使用CSS content的attr实现鼠标悬浮提示(tooltip)效果CSS实现鼠标悬浮无限向下级展示的实例代码CSS鼠标悬浮DIV后显示DIV外的按钮解决方法CSS3制作了一个动画导航效果(鼠标悬浮会放大)css实现缕空遮罩层的示例代码css3遮罩层镂空效果的多种实现方法CSS实现带遮罩层可关闭的弹窗效果CSS 鼠标悬浮在图片上添加遮罩层效果的实现
- CSS动态渐变色边框围绕内容区域旋转的效果(实例代码)使用纯 CSS 创作一个渐变色动画边框
- 基于html+css做一个好看的可翻转登录注册界面基于HTML5+CSS3实现的会员登录/注册表单切换特效源码css3实现简单游戏登录注册表单页面特效源码CSS3登录注册表单滑动切换特效源码基于CSS3实现翻转切换用户登录注册界面特效源码jQuery+CSS3实现简洁登录注册表单动画切换特效源码CSS制作用户登录和用户注册的用户体验表单基于css3实现扁平简洁清爽的登录注册页面代码
- CSS拾遗之箭头,目录,图标的实现代码css记录文本图标对齐的几种解决方案CSS3鼠标滑过图片效果 用Font Awesome库实现悬停图标CSS运用阿里巴巴矢量库快速在对应位置加上好看的图标效果(实例代码)
- CSS实现半透明边框与多重边框的场景分析一文教你玩转CSS border(边框)CSS 奇思妙想边框动画效果的实现CSS3 按钮边框动画的实现CSS3 实现发光边框特效两款纯CSS3鼠标经过按钮边框动画特效一篇文章带你学习CSS3图片边框css3多种边框悬停按钮填色动画特效css 透明边框background-clip妙用CSS3实现缺角矩形,折角矩形以及缺角边框CSS边框长度控制功能的实现
- CSS3 新增选择器的实例CSS3选择器新增问题的实现CSS 选择所有子元素添加样式的方法CSS选择器中的正则表达式使用一文教你玩转CSS 组合选择器
- css实现流程导航效果(三种方法)CSS3实现的下划线跟随文字导航特效源码纯CSS3实现的图标菜单下拉收缩二级导航特效源码js和CSS3炫酷圆形导航菜单插件circular-menuhtml+css 实现简易导航栏功能CSS导航条菜单之带小三角形的实现代码css利用transform skewX制作平行四边形导航菜单CSS3实现的自适应浏览器大小导航及响应式二级菜单栏特效源码纯CSS3实现带吸附和阴影效果的垂直菜单导航功能源码css实现导航切换的实例代码纯CSS实现导航栏下划线跟随的示例代码
- CSS3制作轮播图的一种方法jQuery css3实现响应式图文卡片滚动轮播特效CSS3简易切割轮播图的实现代码利用 CSS3 实现的无缝轮播功能代码CSS3实现列表无限滚动/轮播效果
