小程序中纯CSS实现仿京东小优惠券图标

效果图:


image.png

通常情况下可以用图片做背景图实现,但是,背景图如果用png,会出现被拉伸变形的问题,如果用svg会有兼容问题,同时也有被拉伸变形的问题,仔细分析,这个图标其实是一个圆角矩形里面被两个半圆切了左右两边,可以根据大小不同修改其中的数字,还可以修改部分代码用calc来实现自适应:

html

<view class="small-coupon">
    <text>优惠券1</text>
</view>

css

.small-coupon {
        display: inline-block;
        font-size: 22rpx;
        color: #F22A2A;
        padding: 5rpx 20rpx;
        margin-right: 8rpx;
        border-radius: 8rpx;
        border: 1rpx red solid;
        position: relative;
        &::before,&::after{
            content: ' ';
            display: block;
            width: 9rpx;
            height: 18rpx;
            border: 1rpx solid red;
            background-color: #fff;
            position: absolute;
            top: 10rpx;
        }
        &::before{
            border-radius: 0 18rpx 18rpx 0;
            border-left: none;
            left: -1rpx;
            
        }
        &::after{
            border-radius: 18rpx 0 0 18rpx;
            border-right: none;
            right: -1rpx;
        }
    }

代码解析:
1、实现圆角矩形,这个很简单

               display: inline-block;
        font-size: 22rpx;
        color: #F22A2A;
        padding: 5rpx 20rpx;
        margin-right: 8rpx;
        border-radius: 8rpx;
        border: 1rpx red solid;
        position: relative;

2、实现两个半圆,左右各一个:

            &::before,&::after{
            content: ' ';
            display: block;
            width: 9rpx;
            height: 18rpx;
            border: 1rpx solid red;
            background-color: #fff; // 白色背景有用的
            position: absolute;
            top: 10rpx;
        }
&::before{
            border-radius: 0 18rpx 18rpx 0;
            border-left: none;//
            left: -1rpx; //-1位置遮住左边框线
            
        }
        &::after{
            border-radius: 18rpx 0 0 18rpx;
            border-right: none;
            right: -1rpx; //-1位置遮右住边框线
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、CSS中的属性和取值 1.文本类属性: text-align属性:此标签内容的水平对齐方式,内容须为具体文字/...
    刘远舟阅读 685评论 0 1
  • 持续更新... 这里将展示本人有关于CSS类的开发经验,并没有有循序渐进,关联性不强,都是想到哪写到哪,望海涵。更...
    Max_Law阅读 1,273评论 2 11
  • 本文主要讲述页面布局样式方面涉及的知识点,更全面的对CSS相应的技术进行归类、整理、说明,没有特别详细的技术要点说...
    Joel_zh阅读 1,182评论 0 1
  • 第2章:背景与边框 1.半透明边框 背景知识:RGBA/HSLA颜色-给一个容器设置白色背景和一道半透明白色边框,...
    普通不平庸阅读 934评论 0 1
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,451评论 2 66

友情链接更多精彩内容