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.rhkb.cn/news/457136.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LTSC版本的Windows系统没有默认图片查看工具和便笺?教你下载。

前言 最近小白在使用Windows 11 LTSC版本,感觉真的是嘎嘎好用。 终于等到了!旧电脑福星——最干净的Win11官方原版系统 小白用来安装这个系统的电脑配置其实也不低: i5-12400(核显输出) 16GB DDR4 3200MHz 500GB …

植物健康,Spring Boot来助力

3系统分析 3.1可行性分析 通过对本植物健康系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本植物健康系统采用SSM框架,JAVA作为开发语言&#…

【c++篇】:从基础到实践--c++内存管理技巧与模版编程基础

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:c篇–CSDN博客 文章目录 前言一.c/c内存分布二.c/c的动态内存管理方式2.1.c语言的动态内存管…

Rust初踩坑

一、下载 到官网https://www.rust-lang.org/zh-CN/tools/install下载你需要的版本 二、安装 执行rustup-init 文件,选择1 按提示直到安装完成 可以通过以下命令测试: rustc -V # 注意的大写的 V cargo -V # 注意的大写的 V三、在VScode中…

Linux--epoll(ET)实现Reactor模式

Linux–多路转接之epoll Reactor反应堆模式 Reactor反应堆模式是一种事件驱动的设计模式,通常用于处理高并发的I/O操作,尤其是在服务器或网络编程中。 基本概念 Reactor模式又称之为响应器模式,基于事件多路复用机制,使得单个…

UDP(用户数据报协议)端口监控

随着网络的扩展,确保高效的设备通信对于优化网络功能变得越来越重要。在这个过程中,端口发挥着重要作用,它是实现外部设备集成的物理连接器。通过实现数据的无缝传输和交互,端口为网络基础设施的顺畅运行提供了保障。端口使数据通…

vuex使用modules模块化

1、main.js引入 //引入vuex import store from ./store new Vue({el: #app,router,store,components: { App },template: <App/>,data:function(){return{wbWinList: [] // 定义的变量&#xff0c;全局参数}}, })2、index.js import Vue from vue; import Vuex from …

python实战(一)——iris鸢尾花数据集分类

一、任务背景 本文是python实战系列专栏的第一篇文章&#xff0c;我们将从分类开始由浅入深逐步学习如何使用python完成常规的机器学习/深度学习任务。iris数据集是经典的机器学习入门数据集&#xff0c;许多分类任务教程都会以这个数据集作为示例&#xff0c;它的数据量是150条…

路由器 相关知识

一、路由器是什么 参考&#xff1a;图解系列--路由器和它庞大的功能_路由功能-CSDN博客 路由器是指&#xff1a;主要负责 OSI参考模型中网络层的处理工作&#xff0c;并根据路由表信息在不同的网络 之间转发IP 分组的网络硬件(图3-1)。这里的网络一般是指IP 子网&#xff0c;…

Redis 发布订阅 总结

前言 相关系列 《Redis & 目录》&#xff08;持续更新&#xff09;《Redis & 发布订阅 & 源码》&#xff08;学习过程/多有漏误/仅作参考/不再更新&#xff09;《Redis & 发布订阅 & 总结》&#xff08;学习总结/最新最准/持续更新&#xff09;《Redis &a…

回顾项目测试全过程,测试如何回答“测完了吗?”

“测完了吗&#xff1f;” 是系统测试岗位同学经常被问到的问题&#xff0c;提问的人可能是合作的研发&#xff0c; 合作的产品经理&#xff0c;甚至是项目的业务方&#xff0c;也有可能是测试自己。 这个问题至少有两层意思&#xff0c;不仅问新功能测试进度是否完成&#xf…

qt QMediaPlaylist

QMediaPlaylist 是 Qt Multimedia 模块中的一个类&#xff0c;用于管理媒体文件的播放列表。它提供了一种方便的方式来组织和控制多媒体内容的播放&#xff0c;如音频和视频文件。 主要方法 QMediaPlaylist(00bject *parent nullptr):构造一个新的媒体播放列表对象。void add…

论文解析八: GAN:Generative Adversarial Nets(生成对抗网络)

目录 1.GAN&#xff1a;Generative Adversarial Nets&#xff08;生成对抗网络&#xff09;1、标题 作者2、摘要 Abstract3、导言 IntroductionGAN的介绍 4、相关工作 Related work5、模型 Adversarial nets总结 6.理论计算 Theoretical Results具体算法公式全局优化 Global O…

【Java网络编程】从套接字(Socket)概念到UDP与TCP套接字编程

目录 网络编程 1.socket套接字 2.udp数据报套接字编程 DatagramSocket API DatagramPacket API Java基于UDP实现客户端-服务器代码实例 3.tcp流套接字编程 ServerSocket API Socket API TCP中的长短连接 Java基于TCP客户端-服务器代码实例 网络编程 1.socket套接字 S…

正则表达式基本语法(快速认知)

正则表达式:一种用于匹配字符串的模式。它可以用于搜索、替换、验证字符串等多种操作。 基本语法: 字符类: [abc]: 匹配 a、b 或 c。[a-z]: 匹配小写字母。[A-Z]: 匹配大写字母。[0-9]: 匹配数字母 比如我们的电话号码是11个数字组成, 则可以表示为: String tel"[0-9][0…

uniapp 引入了uview-ui后,打包错误,主包过大解决方案

原因&#xff1a;由于使用uniapp来设计小程序&#xff0c;使用uview的组件库&#xff0c;导致了主包过大&#xff0c;无法打包 前提条件&#xff1a;已经完成了分包&#xff0c;如果还没有分包的先分包&#xff0c;需要上传代码时用到 1. 通常情况&#xff0c;大多数都是通过点…

构建中小企业设备管理平台:Spring Boot应用

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点

ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点MmIterateNextNode()按从左到右的顺序找到下一个结点 文章目录 ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点MmIterateNextNode()按从左到右的顺序找到下一个结点MmIterateNextNode() MmIterateNextNode() /*…

深入剖析 C 与 C++ 动态内存管理之术

亲爱的读者朋友们&#x1f603;&#xff0c;此文开启知识盛宴与思想碰撞&#x1f389;。 快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f970;&#xff0c;共创活力社区。 &#x1f525;&#x1f525;&#x1f525;【C】进阶&#xff1a;类相关…

Python实现基于WebSocket的stomp协议调试助手工具

stomp协议很简单&#xff0c;但是搜遍网络竟没找到一款合适的客户端工具。大多数提供的都是客户端库的使用。可能是太简单了吧&#xff01;可是即便这样&#xff0c;假如有一可视化的工具&#xff0c;将方便的对stomp协议进行抓包调试。网上类似MQTT的客户端工具有很多&#xf…