当前位置: 首页 > news >正文

CSS揭秘:7. 伪随机背景

在这里插入图片描述

前置知识:CSS 渐变,5. 条纹背景,6. 复杂的背景图案

前言

本篇主要内容依然是关于背景的,无限平铺的背景会显得整齐美观,但又有些呆板,如何实现背景的多样性和随机性,是本篇的核心。

一、四种颜色的条纹图案

首先我们用4条不同宽度颜色的条纹来平铺一个背景,初步模拟背景条纹的随机性。

  background: linear-gradient(90deg, #fb3 15%, #655 0, #655 40%, #ab4 0, #ab4 65%, hsl(20, 40%, 90%) 0);background-size: 80px 100%; width: 400px;height: 200px

在这里插入图片描述

乍一看,这些条纹已经具备了一些随机性的视觉效果,但是也很明显能看出每80px,图片就会开始重复,这个规律很容易被发现。

二、更高的随机性

我们以四种颜色中的其中一个为底色,其他三种颜色作为条纹。 再将三个条纹以不同的间隔进行平铺,就可以得到更加”随机“的条纹背景。

background: hsl(20, 40%, 90%);
background-image:linear-gradient(90deg, #fb3 10px, transparent 0),linear-gradient(90deg, #ab4 20px, transparent 0),linear-gradient(90deg, #655 20px, transparent 0);
background-size: 80px 100%, 60px 100%, 40px 100%;

在这里插入图片描述

如果不标记出来,我们目前应该比较难去分辨出平铺的图案连接处了。
如上代码,我们将三个条纹分别以 80px 60px 40px 的宽度平铺在纯色背景上,相当于三张不同尺寸图片平铺叠加在一起。那么如果我们想找到每次重复起始的点,其实就是找到 80 60 40最小公倍数

在这里插入图片描述

为了便于理解,我将各条纹图片拆分出来:

  1. 背景:background: hsl(20, 40%, 90%);
  2. 条纹一:橙色条纹以 10px 的宽度,(80 - 10)70px 的间距 平铺。
background-image: linear-gradient(90deg, #fb3 10px, transparent 0); 
background-size: 80px 100%; 
  1. 条纹二: 绿色条纹以 20px 的宽度,(60 - 20)40px 的间距 平铺。
background-image: linear-gradient(90deg, #ab4 20px, transparent 0); 
background-size: 60px 100%;
  1. 条纹三: 棕色条纹以 20px 的宽度,(40 - 20)20px 的间距 平铺。
background-image: linear-gradient(90deg, #655 20px, transparent 0); 
background-size: 40px 100%;

[图片]

[图片]

[图片]

小结

根据我们上面实践的方法,我们可以发现,平铺的图片越大,越难以被发现重复性。那么根据我们得出平铺图片的起点是根据三者的最小公倍数得来的可以得出,我们需要给出的3个条纹尺寸,最好都是质数,只有质数之间的最小公倍数最大,这样可以更容易让平铺的图片变大。

相关阅读

  • CSS揭秘:1.半透明边框
  • CSS揭秘:2.多重边框
  • CSS揭秘:3.灵活的背景定位
  • CSS揭秘:4.边框内圆角
  • CSS揭秘:5.条纹背景(上)
  • CSS揭秘:5.条纹背景(下)
  • CSS揭秘:6.复杂的背景图案(上)
  • CSS揭秘:6.复杂的背景图案(下)
http://www.lryc.cn/news/471625.html

相关文章:

  • SAP CODE DEMO:查找AL11 指定路径下文件中的内容
  • 【华为HCIP实战课程二十四】中间到中间系统协议IS-IS配置实战,网络工程师
  • 【工具】新手礼包之git相关环境包括中文的一套流程{收集和整理},gitlab的使用
  • 篇章十一 打包构建工具
  • 青少年编程与数学 02-002 Sql Server 数据库应用 06课题、数据库操作
  • MacOS下载安装Logisim(图文教程)
  • Flink CDC系列之:调研应用Flink CDC将 ELT 从 MySQL 流式传输到 StarRocks方案
  • 一次元空间FullGC导致OOM问题分析
  • Web前端开发工具和依赖安装
  • 【学习心得】远程root用户访问服务器中的MySQL8
  • lust变频器维修电梯变频器CDD34.014.W2.1LSPC1
  • 跨越地域限制:在线原型设计软件的自由与便捷
  • flash-waimai:高仿饿了么外卖平台,使用他轻松打造自己的外卖平台
  • 2.5 塑性力学—应变状态
  • 1.机器人抓取与操作介绍-深蓝学院
  • 六,Linux基础环境搭建(CentOS7)- 安装HBase
  • 《计算机网络网络层:连接虚拟世界的关键桥梁》
  • 【AIGC】2024-arXiv-CtrLoRA:一种可扩展且高效的可控图像生成框架
  • 立仪光谱共焦在玻璃上奥秘与应用
  • 【天气识别系统】Python+卷积神经网络算法+人工智能+深度学习+TensorFlow+算法模型训练+Django网页界面
  • MiniCTX:面向大语言模型定理证明的上下文相关基准测试系统
  • 树莓派开发相关知识三PWM控制转速
  • SpringBoot最常用的注解
  • js 获取当前时间与前一个月时间
  • 深度了解flink rpc机制(四) 组件启动流程源码分析
  • C++基于opencv的视频质量检测--遮挡检测
  • 手机玩潜水员戴夫?GameViewer远程如何随时随地玩潜水员戴夫教程
  • UE5 喷射背包
  • 【Vue3】第三篇
  • c++二级指针