当前位置: 首页 > news >正文

前端马农:抢不到消费券,我还不会自己做一张吗

前言

最近,政府为了刺激消费,发放了大量的消费券,大家应该参与了抢券大军吧。但是如果你是一个前端程序员,你有没有想过,这个消费券样式我能实现吗?今天给大家分享一下,常用的票券的样式实现。

 

抽象一下

对我们常用的票券进行抽象后,大概就是下面几种样式了,我们来看看怎么实现吧

 

实现方案

对于内凹圆角或者镂空的这类样式,我们一般实现方案是使用mask(遮罩);mask语法很简单,我们就当成background来用就好了,可以是PNG图片、SVG图片、也可以是渐变绘制的图片,同时也支持多图片叠加。然后我们了解一下他的遮罩原理:最终效果只显示不透明的部分,透明部分将不可见,半透明类推。

<1>实现一个内凹圆角

 

<div class="content"></div> .content {     width: 300px;     height: 150px;     margin: auto;     -webkit-mask: radial-gradient(circle at left center, transparent 20px, red 0);     background: red; } 

当前(2016.10.19)mask 处于 候选标准阶段(CR),还不是正式标准(REC),webkit/blink 内核加前缀 -webkit- 可使用

<2>实现两个内凹圆角之遮罩合成

 

  .content{           

    width:300px;           

    height:150px;           

    background:red ;           

   -webkit-mask:radial-gradient(circle at left center,transparent 20px,red 20px)  ,           

                          radial-gradient(circle at right center,transparent 20px,red 20px) ;           

     

    }

上面的写法是没有效果的,此时使用为两个重合后,整个区域都是不透明的,导致没有效果,这个时候我们需要使用遮罩合成;我们通过ps了解一下遮罩合成

遮罩合成mask-composite

-webkit-mask-composite: destination-in; /*只显示重合的地方*/

 

 

<3>实现两个内凹圆角之平铺

 .content{           

         width:300px;           

         height:150px;           

         background:red ;           

          -webkit-mask:radial-gradient(circle at 20px center,transparent 20px,red 20px);           

         -webkit-mask-position: -20px;       

}

<4>实现四个内凹圆角

 

 .content{           

       width:300px;           

       height:150px;           

       background:red ;           

       -webkit-mask:radial-gradient(circle at 20px 20px,transparent 20px,red 20px);           

      -webkit-mask-position: -20px -20px;       

}

<5>实现六个内凹圆角

 

 .content{           

     width:300px;           

     height:150px;           

     background:red ;           

     -webkit-mask:radial-gradient(circle at 20px 20px,transparent 20px,red 20px);           

     -webkit-mask-position: -20px -20px;           

     -webkit-mask-size:50% 100%;       

}

<6>实现中间一排的镂空

 

.content{           

       width:300px;           

       height:150px;           

       background:red;           

        -webkit-mask:           

            radial-gradient(circle at 20px 20px,transparent 20px,red 20px) -20px -20px/50% 100% ,           

            radial-gradient(circle at center 5px,transparent 5px,red 5px) 0px -5px/100% 30px;           

      -webkit-mask-composite: destination-in;        }

<7>实现两边多个内凹圆角

 

其实很简单:只需把遮罩的高度,变小,让他们平铺就可以了

 .content{           

       width:300px;           

      height:150px;           

       background:red ;           

      -webkit-mask:radial-gradient(circle at 10px 10px,transparent 10px,red 10px);           

     -webkit-mask-position: -10px 5px;           

     -webkit-mask-size:100% 30px;       

}

相关文章:

  • React基础-JSX事件绑定-事件传参
  • python爬虫面试题集锦及答案
  • 语言学概论
  • 2022国赛C题解析
  • 我的创作纪念日,3周年总结
  • 构建自己的Docker镜像(Dockerfile)
  • SQL Server 2012学习笔记- - - 初识篇
  • QT UI设计笔记
  • 【全栈】vue3.0 + golang 尝试前后端分离【博客系统1.1】有进展了
  • Chapter9:Simulink建模与仿真
  • 【Python Web】Flask框架(八)前端基础整合
  • MYSQL的安装及环境配置
  • Qt的QChartView实现缩放和放大功能
  • 2022 IDC中国未来企业大奖优秀奖颁布,华为云数据库助力德邦快递获奖
  • 计算机网络(二) | 网络编程基础、Socket套接字、UDP和TCP套接字编程)
  • 时间复杂度分析经典问题——最大子序列和
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • angular2开源库收集
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • CSS魔法堂:Absolute Positioning就这个样
  • Invalidate和postInvalidate的区别
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Java多态
  • mysql 数据库四种事务隔离级别
  • Python 反序列化安全问题(二)
  • React Native移动开发实战-3-实现页面间的数据传递
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Spark学习笔记之相关记录
  • Spring Boot快速入门(一):Hello Spring Boot
  • v-if和v-for连用出现的问题
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 推荐一个React的管理后台框架
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 硬币翻转问题,区间操作
  • 仓管云——企业云erp功能有哪些?
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​secrets --- 生成管理密码的安全随机数​
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #pragma 指令
  • (1)bark-ml
  • (10)ATF MMU转换表
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (3)(3.5) 遥测无线电区域条例
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Matlab)使用竞争神经网络实现数据聚类
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (二)PySpark3:SparkSQL编程
  • (二十四)Flask之flask-session组件
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (面试必看!)锁策略
  • (图)IntelliTrace Tools 跟踪云端程序