前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >css实现漂亮弧形

css实现漂亮弧形

作者头像
grain先森
发布2019-03-29 10:27:07
1.8K0
发布2019-03-29 10:27:07
举报
文章被收录于专栏:grain先森grain先森

在实现页面五花八门的有特色的ui时,我们有时会遇到要用实现一个弧形,而这样的弧形要怎么实现呢?用图片?好像不大现实,因为这样就要无故多加载一张图片了,这里我们来说说怎么用css的after伪类来实现弧形。

先是一写元素,再给这个元素设置样式和伪类样式

<view class="pure_top"></view>

比如说这个pure_top元素(因为这里是小程序所以用的是view,h5也是一样实现的啦),我设置的样式如下:

.pure_top {  

width: 100%;  

height: 100px;  

position: relative;  

z-index: -1;  

overflow: hidden;

}

.pure_top::after {  

content: '';  

width: 140%;  

height: 100px;  

position: absolute;  

left: -20%;  

top: 0;  

z-index: -1;  

border-radius: 0 0 50% 50%;  

background: #1496f1;

}

如何在元素后追加一个after,当然是元素自身定位为relative,伪类设置content:‘’,并相对定位为absolute,再设置下left ,top 值,使伪类元素的位置摆放的合理就行了。

这里需要注意的是我把z-index值设为-1,因为弧形一般是作为背景图的,所有层级自然要放低些。

实现效果如下图:

上面的图看起来好像弧度太大,几乎要看不出。依上面的实现原理,弧度要多少可以是自己微调。看上面的伪类.pure_top::after { content: '';width: 140%;}宽度为140%,难怪弧度那么大呢?半径越大,弧度就越大(我应该没记错吧哈哈哈哈哈哈),那我们是不是可以减小半径来达到变小弧度的需求?看下图的实现:

.gradient_top {  

width:100%;    

height: 330rpx;  

position: relative;  

z-index: -1;  

overflow: hidden;

}

.gradient_top::after {  

content: '';  

width: 100%;  

height: 330rpx;  

position: absolute;  

left: 0;  

top:0;  

z-index: -1;  

border-radius: 0 0 80% 80%;  

background: linear-gradient(160deg,#1496f1, #E0F0FA);

}

这里把伪类的宽设为100%,left , top值自然就为0了。

这里可以看到,如果要设置渐变,把background设为渐变就可以了,但是注意,我都是把颜色设置在伪类上的。

学会了就快去实现你丰富多彩的界面吧~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.01.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档