使用css3锥形渐变conic-gradient实现有趣样式

devtools/2025/2/12 5:15:51/

在之前的篇幅中介绍过css的线性渐变linear-gradient()和径向渐变radial-gradient(),如果你对这两种渐变还不了解的话,可以看一下之前录制的视频教程。

往期文档地址:https://blog.csdn.net/qq_18798149/article/details/134389038
视频学习地址: https://www.bilibili.com/video/BV1ga4y1D78d

名词介绍:

这一节再介绍另一种渐变方法,conic-gradient()锥形渐变,所谓锥形渐变:它围绕一个中心点旋转,颜色沿着圆周方向变化,上个图可能看起来更直观。

在这里插入图片描述

用法说明:

使用一段css可以简单实现上面的这种效果,如下所示:

html部分

<div class="conic"></div>

css部分

css">.conic{width: 300px;height: 300px;border-radius: 50%;background-image: conic-gradient(red,yellow,green,cyan,blue,magenta,red);    
}

只需要为背景background设置conic-gradient方法,在函数内设置想要锥形渐变的颜色,即可达到如下图所示效果。

在这里插入图片描述

按照如上所示的方法,可以做一些金属质感的纹理效果,如下图所示,只需要找好颜色,这种类型的效果很好实现,为了更好的调整锥形渐变的角度和范围,是可以为锥形渐变设置角度和范围的,上面的渐变同时还可以添加角度设置范围。

css">background-image: conic-gradient(red 0deg,yellow 60deg,green 120deg,cyan 180deg,blue 240deg,magenta 300deg,red 360deg);

在这里插入图片描述

这种效果实在是缺少美感,没什么太多的应用,下面我就结合在项目中常见的效果来应用一下conic-gradient锥形渐变,希望能通过下面更多属性的介绍,为大家添加更多的技能,操作这类效果更方便。

☀️应用一:放射线效果

在这里插入图片描述

这种效果见过没,很多的促销海报会用到这种背景,为海报增加视觉吸引力和空间感,相信大家见过这样的设计吧,放几张海报大家感受一下。

在这里插入图片描述 在这里插入图片描述

大家可以从海报中找到锥形放射线的位置吧,跑远了,怎么讲到设计上去了,我们来给大家贴一下代码怎么实现吧。

css">.radiation{width: 300px;height: 300px;margin:100px;background-image: conic-gradient(#3772FF 0 10deg,transparent 10deg 20deg,#3772FF 10deg 30deg, transparent 30deg 40deg,.....);          
}

如果0度和10度直接的颜色不同,会出现渐变混合的,放射线的边缘是比较清晰的,所以看上面代码就可以看出规律来了,给0度到10度设置第一个颜色,给10度到20度设置第二个颜色,给20度到30度设置第一个颜色,然后递增10度的方式依次设置,直到360度,这样会实现放射线的效果,但是会出现非常庞大的代码,其实css3>css3给我们提供了另一个非常好用的方法。

repeating-conic-gradient()

可以来重复交替,就不需要我们手动去添加了,如下代码所示:

css">background: repeating-conic-gradient(#3772FF 0deg 10deg,transparent 10deg 20deg
); 

通过这个重复方法就可以按照我们给定的两个或者更多颜色,按照我们的规律自动进行重复填满,省去我们自己计算的时间。

📀应用二:loading加载样式

在这里插入图片描述

如上这种loading渐变圆环转圈圈的效果,大家在一些网站都见过吧,原来想实现这种方法,你可能还需要使用图片,现在使用css的锥形渐变配合mask遮罩属性,然后添加animation即可实现此类效果,下面就来介绍一下。

css_101">1.HTML创建节点,css画一个锥形渐变

<div class="loading"></div>
css">.loading{width: 200px;height: 200px;            border-radius: 50%;background: conic-gradient(transparent 0deg, transparent 60deg, #337EEF 360deg);    
}

设置一个锥形渐变,从0度-60度是透明色,60-360度自定义颜色,会获得如下图形效果。
在这里插入图片描述

2.用mask遮罩属性,将中心区域隐藏

mask遮罩,可以使用位图、矢量图,同时也支持使用渐变函数来进行遮罩,详细的mask遮罩文档可以查看下面链接:https://developer.mozilla.org/zh-CN/docs/Web/CSS/mask

css">.loading{width: 200px;height: 200px;border-radius: 50%;background: conic-gradient(transparent 0deg, transparent 60deg, #337EEF 360deg);mask:radial-gradient(transparent calc(50% - 1px), #000 50%);   -webkit-mask:radial-gradient(transparent calc(50% - 1px), #000 50%);
}

看上面代码,添加了mask属性,值是已经镜像渐变,这个径向渐变是一个从中心透明到黑色的圆环,效果可以放到background属性看看,如下图所示:

在这里插入图片描述

如果将这个渐变遮罩背景的锥形渐变,将会透明透明位置隐藏,不透明位置显示,两层一叠加,就会得到一个锥形渐变的圆环效果了,添加-webkit-mask是为了做低版本浏览器兼容的,这样不但浏览器支持,微信小程序也支持此mask遮罩效果,如下图所示:

在这里插入图片描述

3.keyframes定义关键帧,animation动起来

css">.loading{width: 200px;height: 200px;border-radius: 50%;background: conic-gradient(transparent 0deg, transparent 60deg, #337EEF 360deg);mask:radial-gradient(transparent calc(50% - 1px), #000 50%);       -webkit-mask:radial-gradient(transparent calc(50% - 1px), #000 50%);animation: rotate 0.6s linear infinite;
}@keyframes rotate{100%{transform: rotate(360deg);}
}

在这里插入图片描述

这样一个loading加载动画就做出来了,如果loading样式太大,你只需要设置width宽和height高即可缩小loading样式了。

应用三🔲:透明棋盘网格效果

在这里插入图片描述

上面这种效果大家见过没有,如果是一张png透明图,超出图片本身的区域会有黑白相间的透明网格作为背景,在我开发的咸虾米壁纸后台管理项目中,也用到了这种效果,超出规定区域的背景将使用黑白透明网格作为填充。https://www.bilibili.com/cheese/play/ss145273324

在这里插入图片描述

这个用途比较多,来看一下怎么实现的吧。

<div class="box"><img src="./img.png" width="200">
</div>
css">.box{width: 300px;height: 300px;display: flex;align-items: center;justify-content: center;background-image: conic-gradient(#ccc 0 25%,#fff 25% 50%,#ccc 50% 75%,#fff 75%);background-size: 16px 16px;    
}

在这里插入图片描述

看上面代码,给背景设置锥形渐变可以使用角度也可以使用百分比,如果使用角度按照0~360deg,百分比0-100%,设置锥形渐变的四个区域,类似应用一里面的放射线效果。

最后还要设置一下background-size,指定一个黑白格的大小,默认是repeat重复,这样背白透明棋盘网格背景就做好了。

总结:

以上就是我对锥形渐变conic-gradient方法的总结,我常用到的就是以上三种应用,如果大家还有别的更好的玩法可以给我评论留言,我就继续进行补充的,在介绍这三种应用的时候也介绍了其他的属性,并没有详细的展开,同时也提供了链接供大家学习,如果不懂的复制到AI内也会给你解释明白的。

感谢大家的阅读,记得点赞支持一下哈~~


http://www.ppmy.cn/devtools/158118.html

相关文章

Java 反射机制的安全隐患与防范措施:在框架开发与代码审计中的应用

前言 在 Java 编程的广阔领域中&#xff0c;反射机制堪称一把神奇且强大的钥匙&#xff0c;它为开发者打开了通往动态编程的全新大门。借助反射&#xff0c;Java 程序获得了在运行时自我审视和操作的独特能力&#xff0c;极大地增强了代码的灵活性与适应性。 简单来讲&#x…

github - 使用

注册账户以及创建仓库 要想使用github第一步当然是注册github账号了, github官网地址:https://github.com/。 之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程。 Git…

【C/C++】每日温度 [ 栈的应用 ] 蓝桥杯/ACM备赛

数据结构考点&#xff1a;栈 题目描述&#xff1a; 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0…

Scala语言的系统运维

Scala语言的系统运维 引言 在今天的科技发展时代&#xff0c;软件系统的复杂性和规模不断增加&#xff0c;因此系统运维的管理和监控显得尤为重要。在众多编程语言中&#xff0c;Scala因其高度的表达力和强大的性能而受到越来越多开发者和运维人员的青睐。本文将探讨Scala语言…

Android车机DIY开发之软件篇(十) NXP MfgTool和UUU的使用

标题Android车机DIY开发之软件篇(十) NXP MfgTool和UUU的使用 一、MfgTool工具 1.基本原理 1、先向DDR下载一个linux系统2. 通过linux完成烧写files里面保存的是最终保存到开发板中的uboot.imx zimage dtb rootfsvbs是在打开mfgtool2和很多参数ucl2.xml表示文件选择 定义自…

【Spring Boot】SpringBoot自动装配-Import

目录 一、前言二、 定义三、使用说明 3.1 创建项目 3.1.1 导入依赖3.1.2 创建User类 3.2 测试导入Bean 3.2.1 修改启动类 3.3 测试导入配置类 3.3.1 创建UserConfig类3.3.2 修改启动类 3.4 测试导入ImportSelector 3.4.1 创建UseImportSelector类3.4.2 修改启动类3.4.3 启动测试…

PostgreSQL插件-pg_stat_statements-安装和使用

文章目录 插件介绍插件安装1.修改配置文件postgresql.conf2.插件相关参数参数默认值参数说明特别注意pg_stat_statements.max参数设置太小日志会有警告 插件使用1.创建插件2.使用插件3.重置数据4.删除插件 可能会出现的问题1.没有编译安装插件2.没有配置shared_preload_librari…

使用WebUI访问本地Deepseek(Ollama集成Open WebUI)

在《deepseek本地部署和使用&#xff08;Linux虚拟机&#xff09;》中&#xff0c;我们使用Ollama部署了Deepseek-r1&#xff0c;但是只能通过命令行方式交互&#xff0c;默认Ollama启动后&#xff0c;会启动一个监听到127.0.0.1&#xff0c;用以接收POST 请求&#xff0c;服务…