纯CSS实现美妙而有意思的背景效果!!

纯CSS实现美妙而有意思的背景效果!!

本篇文章给大家介绍一下背景的一些有意思的知识,利用一些极小的单位,只需要短短几行代码,就能够产生出美妙而又有意思的背景效果~

数量级对背景图形的影响

本文的主角主要是:

多重径向渐变(repeating-radial-gradient)多重角向渐变(repeating-conic-gradient)

什么是数量级对背景图形呢?我们来看这样一种有意思的现象:

我们使用 repeating-conic-gradient 多重角向渐变实现一个图形,代码非常的简单,示意如下:

立即学习“前端免费学习笔记(深入)”;

div {    width: 100vw;    height: 100vh;    background: repeating-conic-gradient(#fff, #000, #fff 30deg);}

1.png

30deg 替换为 0.1deg

然后,我们用一个非常小的值去替换上述代码中的 30deg,类似于这样:

{    background: repeating-conic-gradient(#fff, #000, #fff 0.1deg);}

这是什么玩意?脑补一下,这行代码绘制出来的图形会是什么样子?

看看效果:

2.png

Wow,不可思议。这里 0.1deg 非常关键,这里的角度越小(小于 1deg 为佳),图形越酷炫,也就是我们说的数量级对背景图形的影响。

CodePen — One Line CSS Pattern

借助 CSS @property 观察变化过程

在之前,如果我们直接写下述的过渡代码,是无法得到补间过渡动画的,只会有逐帧动画:

div{    background: repeating-conic-gradient(#fff, #000, #fff 0.1deg);    transition: background 1s;}div:hover {    background: repeating-conic-gradient(#fff, #000, #fff 30deg);}

只能得到这样的效果,原因在于 CSS 不支持对这种复杂的渐变进行直接的过渡动画

3.gif

OK,接下来,运用在这篇文章 –CSS @property,让不可能变可能 介绍的 CSS @property 的知识,我们可以利用 CSS @property 观察一下它们两种状态变化的过程。

简单改造下代码,核心代码如下:

@property --angle {  syntax: '';  inherits: false;  initial-value: 0.1deg;}div{    background: repeating-conic-gradient(#fff, #000, #fff var(--angle));    transition: --angle 2s;}html:hover {    --angle: 30deg;}

纯CSS实现美妙而有意思的背景效果!!

Wow,本着寻找不同数量级单位对这个图形的影响,却歪打正着得到了一个看着很魔幻的过渡动画效果。强烈建议你点进 DEMO 感受下变换的效果:

CodePen — repeating-conic-gradient CSS Pattern Transition(Only Chrome 85+)

通过 CSS @property  实现的补间过渡动画,看到从 30deg0.1deg 的变化过程,我们大致可以看出小单位 0.1deg 是如何去影响图形的。

同时,这个单位越小,图片的细节越多,具体的可以自己再尝试。

多重径向渐变 &  多重角向渐变 配合小单位实现有意思的背景

利用上述的一些小技巧,我们利用多重径向渐变(repeating-radial-gradient)、多重角向渐变(repeating-conic-gradient)就可以生成一些非常有意思的背景图片。

简单罗列一些:

div {    background-image: repeating-radial-gradient(        circle at center center,        rgb(241, 43, 239),        rgb(239, 246, 244) 3px    );}

5.png

div {    background-image: repeating-radial-gradient(        circle at 15% 30%,        rgb(4, 4, 0),        rgb(52, 72, 197),        rgb(115, 252, 224),        rgb(116, 71, 5),        rgb(223, 46, 169),        rgb(0, 160, 56),        rgb(234, 255, 0) 2px    );}

6.png

div {    background-image: repeating-radial-gradient(        circle at center center,        rgb(81, 9, 72),        rgb(72, 90, 223),        rgb(80, 0, 34),        rgb(34, 134, 255),        rgb(65, 217, 176),        rgb(241, 15, 15),        rgb(148, 213, 118) 0.1px    );}

7.png

div {    background-image: repeating-radial-gradient(        ellipse at center center,        rgb(75, 154, 242),        rgb(64, 135, 228),        rgb(54, 117, 214),        rgb(43, 98, 200),        rgb(33, 79, 185),        rgb(22, 60, 171),        rgb(12, 42, 157),        rgb(1, 23, 143) 0.01px    );}

8.png

嘿嘿,是不是别有一番意思,更多有意思的图形可以自己尝试尝试,完整的 DEMO 代码,你可以戳进这里看看:

CodePen Demo — Magic Gradient Art

最小可以小到什么程度?

repeating-radial-gradient 它类似于 radial-gradient() 并且采用相同的参数,但是它会在所有方向上重复颜色,以覆盖其整个容器。

以下述代码为例子,其中的单次绘制图形的终止点 1px,也就是本文的重点,它究竟可以小到什么程度呢?

:root {    --length: 1px}{    background-image: repeating-radial-gradient(        circle at 17% 32%,        rgb(4, 4, 0),        rgb(52, 72, 197),        rgb(115, 252, 224),        rgb(116, 71, 5),        rgb(223, 46, 169),        rgb(0, 160, 56),        rgb(234, 255, 0) var(--length)    );}

我从 100px0.00001px 绘制了 8 张图形,作为比较:

9-1.png

9-2.png

0.001px0.0001px 这个区间段,基本上图形已经退化为粒子图形,见不到径向渐变的轮廓了,而到了 0.00001px 这个级别,居然退化为了一张纯色图片!

CodePen Demo — 不同级别长度单位对 repeating-radial-gradient 图形的影响

使用 repeating-radial-gradient 实现电视雪花噪声动画

在上述 DEMO 中,我们发现,当在 0.001px0.0001px 这个区间段,repeating-radial-gradient 基本退化为了粒子图形:

{    background-image: repeating-radial-gradient(        circle at 17% 32%,        rgb(4, 4, 0),        rgb(52, 72, 197),        rgb(115, 252, 224),        rgb(116, 71, 5),        rgb(223, 46, 169),        rgb(0, 160, 56),        rgb(234, 255, 0) 0.0008px    );}

10.png

这不是非常类似电视雪花屏的效果么?微调 0.0008px 这个参数, 利用几帧不同的动画,我们就可以得到电视雪花噪声的动画了。

纯CSS实现美妙而有意思的背景效果!!

啊哈,非常的有意思,完整的源码你可以戳这里:

Copepen Demo — PURE CSS TV NOISE EFFECT (Only Chrome 85+)

更多编程相关知识,请访问:编程视频!!

以上就是纯CSS实现美妙而有意思的背景效果!!的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1619650.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 06:47:45
下一篇 2025年12月24日 06:47:55

相关推荐

  • css input大小怎么设置

    在css中,可以使用width和height属性来设置input元素的大小,只需要给input元素添加“width:宽度值;height:高度值;”样式即可。input属于行内替换元素,效果等于块元素,所以可设置width和height值。 本教程操作环境:windows7系统、CSS3&&…

    好文分享 2025年12月24日
    000
  • css div怎么不换行显示

    css div不换行显示的方法:1、给div元素添加“display:inline;”或“display:inline-block;”样式,将div元素转为行内元素或行内块元素。2、给div元素添加“float:left;”样式。 本教程操作环境:windows7系统、CSS3&&H…

    2025年12月24日
    000
  • 怎么给css文件改名

    给css文件改名的方法:首先选中需要改名的css文件;然后点击鼠标右键,在打开的下拉菜单中找到并点击“重命名”选项;最后将名称改成需要的名称,按下回车键即可。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。 首先找到一个css文件 然后右键找到重…

    2025年12月24日 好文分享
    000
  • css字间距怎么设置

    设置方法:1、使用letter-spacing属性,可以增加或减少字符间的空白,语法“letter-spacing:值”;2、使用word-spacing属性,可以增加或减少单词间的空白(即字间隔),语法“word-spacing:值”。 本教程操作环境:windows7系统、CSS3&&a…

    2025年12月24日
    000
  • css怎么改变png图片的颜色

    css中可使用filter属性配合invert()、grayscale()、sepia()或hue-rotate()函数来改变png颜色;hue-rotate()设置色相旋转,grayscale()调整灰度,sepia()设置棕褐色图像。 本教程操作环境:windows7系统、CSS3&&a…

    2025年12月24日
    000
  • 如何使用纯CSS、JS实现图片轮播效果

    本篇文章给大家详细介绍一下使用纯css、js实现图片轮播效果的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 .carousel {width: 648px;height: 400px;margin: 0 auto;text-align: center;position: a…

    2025年12月24日
    000
  • css中如何让div居中

    css中让div居中的方法:1、对div使用绝对布局“position:absolute;”;2、对div使用绝对布局并把top和left的值都设置为50%;3、通过css3的transform属性实现div居中。 本文操作环境:windows7系统、HTML5&&CSS3版、Del…

    2025年12月24日 好文分享
    000
  • css怎么设置图片拉伸

    css设置图片拉伸的方法:首先创建一个html页面;然后HTML页面中添加一个div标签,并在标签内部添加一个img图片标签;接着在div的标签中,直接书写css的样式;最后对图片设置高宽都是100%即可。 本文操作环境:windows7系统、HTML5&&CSS3版、Dell G3…

    2025年12月24日 好文分享
    000
  • css中怎么把图片设置居右

    在css中,可以使用text-align属性把图片设置居右,只需要给图片元素设置“text-align:right;”即可。text-align属性指定元素文本的水平对齐方式,当值为right时,表示该元素排列到右边。 本教程操作环境:windows7系统、CSS3&&HTML5版、…

    2025年12月24日
    000
  • css如何去掉图片边框

    在css中,可以使用border属性去掉图片边框,只需要给img元素设置“border=”0″”或是“border:none”即可。border属性设置所有的边框属性,当值为none或是0时,表示对标签元素不设置边框属性或者边框宽度为0。 本教程操作环境:windows7系统…

    2025年12月24日
    000
  • 如何去掉css字体的上下空白

    在css中,可以使用margin属性去掉css字体的上下空白,只需要给字体元素设置“margin:0;”即可。margin属性设置一个元素所有外边距的宽度,或者设置各边上外边距的宽度,当值为0时,表示元素外边距的宽度为0。 本教程操作环境:windows7系统、CSS3&&HTML5…

    2025年12月24日 好文分享
    000
  • css如何让隐藏的元素显示出来

    在css中,可以使用display属性让隐藏的元素显示出来,只需要给被隐藏的元素添加“display:block”样式即可。display属性规定元素应该生成的类型,当值为block时,表示将隐藏的元素显示出来。 本教程操作环境:windows7系统、CSS3&&HTML5版、Del…

    2025年12月24日 好文分享
    000
  • css文本框如何去掉边框

    在html中,可以使用border属性去掉文本框的边框,只需要给文本框元素设置“border:0”或“border:none”样式即可。border属性为元素的边框设置宽度,当值为0或none时,表示文本框宽度为0或是文本框无边框。 本教程操作环境:windows7系统、CSS3&&…

    2025年12月24日 好文分享
    000
  • 详解纯CSS实现文字渐变色的两种方式

    本篇文章给大家介绍使用纯css实现文字渐变色的两种方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 说明 这次的重点就在于两个属性,      background 属性    mask 属性      立即学习“前端免费学习笔记(深入)”; 这两个属性分别是两种实现方式的关键…

    2025年12月24日 好文分享
    000
  • css如何让div隐藏

    css让div隐藏的方法:1、使用“display:none”来隐藏div;2、使用“visibility: hidden;”隐藏div;3、使用“opacity: 0”隐藏div。 本文操作环境:windows7系统、HTML5&&CSS3版、Dell G3电脑。 在我们平时布局网…

    2025年12月24日
    000
  • css边框显示不出来怎么办

    css边框显示不出来的解决办法:首先打开相应的HTML代码文件;然后找到边框代码部分;最后重新设置宽度或者加上“box-sizing”即可。 本文操作环境:windows7系统、HTML5&&CSS3版、Dell G3电脑。 css写了边框显示不全或不显示 div{width: 10…

    2025年12月24日
    000
  • css如何设置滚动条宽度

    设置滚动条宽度的方法:首先使用“::-webkit-scrollbar”伪类选择器来选择元素的滚动条,然后使用width属性来设置滚动条宽度即可,语法“::-webkit-scrollbar{width:宽度值;}”。 本教程操作环境:windows7系统、CSS3&&HTML5版、…

    2025年12月24日
    000
  • css如何设置垂直居中

    css设置垂直居中的方法:1、使用line-height属性让文字垂直居中;2、使用CSS3 flex布局让文字垂直居中;3、使用绝对定位和transform让块状元素垂直居中;4、使用flex布局让块状元素垂直居中。 本教程操作环境:windows7系统、CSS3&&HTML5版、…

    2025年12月24日 好文分享
    000
  • css如何实现鼠标经过样式改变

    实现方法:1、使用“:hover”伪类选择器,选择鼠标指针浮动在其上的元素,并为其设置其样式,语法“:hover{属性名:属性值}”;2、使用transtion属性,语法“transtion:css属性名称 过度时间;”。 本教程操作环境:windows7系统、CSS3&&HTML5…

    2025年12月24日
    000
  • css3怎么实现3d翻转效果

    在css3中,可以使用transform属性配合rotateY()、rotateX()等3d旋转函数来实现3d翻转效果。rotateX()可以使元素绕其X轴旋转给定角度,rotateY()可以使元素绕其Y轴旋转给定角度。 本教程操作环境:windows7系统、CSS3&&HTML5版…

    2025年12月24日 好文分享
    000

发表回复

登录后才能评论
关注微信