html圆角矩形的渐变色,纯CSS实现圆角渐变三角形

本文探讨了如何使用CSS通过伪类元素::after和::before实现圆角渐变镂空三角形。首先尝试了用border和圆角矩形+skew变换的方法,但未能完全满足需求。最终解决方案是利用三个圆角矩形组合,并通过调整旋转、渐变方向和色值来创建自然的渐变效果。关键在于伪类元素的旋转中心计算和特定边的渐变临界值设定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过伪类元素::after,::before实现圆角、变换、旋转、渐变实现镂空三角形,再通过改变宽度填充镂空部分,最后渐变颜色色值取半及调整渐变方向。

一、背景

由于该三角形为品牌设计元素之一,在多个页面均需要展示数个“大小不一 & 角度各异” 的 渐变圆角三角形 。考虑加载的图片数量过多,想尝试用纯css来实现。

66e5df5d781b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

border实现三角形

66e5df5d781b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

渐变圆角三角形

二、分析思路

【方案一】

用 border 实现三角形

66e5df5d781b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

border实现三角形效果图jie

结论:

1.不是等边三角

2.不是圆角

3.border-color 无法设置渐变颜色

【方案二】

用 圆角矩形 + skew变换

66e5df5d781b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

66e5df5d781b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

实现效果

结论:

1.满足等边三角形

2.满足渐变问题

3.无法解决圆角问题

三、解决方案

【方案三】

用三个圆角矩形组合成三角形。参考【圆角镂空三角形】

66e5df5d781b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

圆角镂空三角形

在这个基础上的衍生图形有:

66e5df5d781b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

衍生图形

最后一个图形就是我们需要的圆角渐变三角形啦~

这里需要注意的是渐变的方向和色值

66e5df5d781b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

三条边的渐变方向都是蓝色箭头所指方向。而蓝色框选的一条边的渐变色值边界值需要取另外两条边的渐变色值的中间值。这样才能够让由三条边组合成的圆角渐变三角形的渐变色值比较自然。

实现代码:

66e5df5d781b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

重点注意注释部分

1.伪类元素的两条边的旋转中心的计算方式。

2.蓝色那条边的渐变临界值的计算方式。

四、实现原理

通过伪类元素::after,::before实现圆角、变换、旋转、渐变实现镂空三角形,再通过改变宽度填充镂空部分,最后注意渐变颜色色值取半及渐变方向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值