用纯 CSS 实现网格背景

是不是在日常开发中经常遇到实现网格的需求,网格通常对网页中展示的元素能起到很好的定位和对齐作用。

这里介绍如何只通过 CSS 来实现这个需求?

使用背景图

这里我们的背景图使用 SVG 来创建,首先,创建绘出一个正方形,填充白色;然后通过矩形实现垂直和水平的线条,进而分别对它们进行定位居中。

<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40'>
  <rect width='40' height='40' fill='#fff'></rect>
  <rect x='50%' width='1' height='100%' fill='rgb(203 213 225)'></rect>
  <rect y='50%' width='100%' height='1' fill='rgb(203 213 225)'></rect>
</svg>

效果如下:

有了背景图片,我们对给定的区域设置背景

.grid {
  background-image: url('/path/to/grid.svg');
}

如果要避免加载额外的资源,我们也可以通过图片二进制数据的方式嵌入:

.grid {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Crect width='40' height='40' fill='%23fff' /%3E%3Crect x='50%' width='1' height='100%' fill='rgb(203 213 225)' /%3E%3Crect y='50%' width='100%' height='1' fill='rgb(203 213 225)' /%3E%3C/svg%3E%0A");
}

默认情况下,背景图像会在垂直和水平方向上重复,这样实现的网格是40个像素。我们也可以通过 background-size 属性来自定义背景图的尺寸

57b1dee0c8cd1b02bf0a117aacc6ae0d.png
.grid {
  background-size: 20px;
}
35924ec7a5630b9e6dcaf7211a4a21dc.png

使用线性渐变

另一种使用 CSS 创建网格背景的方式是通过 linear-gradient() 函数来实现的。

首先选择要为其添加网格背景的元素,并设置 background-image 属性。然后,使用 linear-gradient() 函数 指定两种颜色,这两种颜色可以是相似或相同的,它们之间由线条粗细、宽度相同的透明部分分隔开来。

.grid {
  background-image: linear-gradient(to right, gray 1px, transparent 1px);
}

这里的 1px 代表网格的线条宽度,你也可以设置成你想要的宽度。

如果要实现水平线条,只需要把 to right 改为 to botton 。而网格实现既需要横向的线条,也需要纵向的线条。

.grid {
  background-image:
    linear-gradient(to right, gray 1px, transparent 1px),
    linear-gradient(to bottom, gray 1px, transparent 1px);
}

最终的样式:

.grid {
  height: 200px;
  background-image:
      linear-gradient(to right, rgb(203 213 225) 1px, transparent 1px),
      linear-gradient(to bottom, rgb(203 213 225) 1px, transparent 1px);
  background-size: 20px 20px;
  background-position: center center;
}
4e180d5564e8d6beb394d1b3f6e03b7a.png

网状点阵背景

由相同原理,我们来实现一个网状点阵背景,这里需要用到 radial-gradient 函数,创建圆形填充背景色。

.grid {
  height: 200px;
  background-image: radial-gradient(circle, rgb(203 213 225) 2px, #fff 2px);
  background-size: 20px 20px;
  background-position: center center;
}
60e27fd41e3c4aa0c000610851248dd0.png

拓展

另外关注一下这种模拟透明背景样式的实现原理:

.grid {
  height: 200px;
  background-image:
    linear-gradient(45deg, #8d8b8b 25%, transparent 0),
    linear-gradient(-45deg, #8d8b8b 25%, transparent 0),
    linear-gradient(45deg, transparent 75%, #8d8b8b 0),
    linear-gradient(-45deg, transparent 75%, #8d8b8b 0);
  background-position: 0 0, 0 10px, 10px -10px, -10px 0;
  background-size: 20px 20px;
}
028777b55a4a027a18cecc646a7bf333.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/203519.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Talk | UCSB博士生许闻达:细粒度可解释评估初探

本期为TechBeat人工智能社区第551期线上Talk。 北京时间11月29日(周三)20:00&#xff0c;UC Santa Barbara博士生—许闻达的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “细粒度可解释评估初探”&#xff0c;分享了他们团队在具备解释性的细粒度…

Synchronized底层机制:偏向锁、轻量级锁与重量级锁及其锁升级过程

前言&#xff1a; 在Java并发编程中&#xff0c;synchronized关键字是用于实现线程同步的重要工具。在JVM中&#xff0c;synchronized的底层实现涉及到了偏向锁、轻量级锁和重量级锁这三种锁状态&#xff0c;以及锁升级过程。在之前的文章中介绍到过&#xff0c;这篇文章详细对…

《golang设计模式》第三部分·行为型模式-09-策略模式(Strategy)

文章目录 1. 概述1.1 作用1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 1.1 作用 策略&#xff08;Strategy&#xff09;是用于封装一组算法中单个算法的对象&#xff0c;这些策略可以相互替换&#xff0c;使得单个算法的变化不影响使用它的客户端。 1.1 …

基于Springboot的房产销售系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的房产销售系统(有报告)。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring Sp…

Python数据分析从入门到进阶:模型评估和选择(含代码)

引言 之前我们介绍了机器学习的一些基础性工作&#xff0c;介绍了如何对数据进行预处理&#xff0c;接下来我们可以根据这些数据以及我们的研究目标建立模型。那么如何选择合适的模型呢&#xff1f;首先需要对这些模型的效果进行评估。本文介绍如何使用sklearn代码进行模型评估…

《PFL》论文阅读笔记

一、概要 随着联邦学习的发展&#xff0c;简单的聚合算法已经不在有效。但复杂的聚合算法使得联邦学习训练时间出现新的瓶颈。本文提出了并行联邦学习&#xff08;parallel federated learning&#xff0c;PFL&#xff09;&#xff0c;通过调换中心节点聚合和广播的顺序。本文…

W11安装mysql8详细保姆篇

一、MySQL的下载 目前官方最新版本是8.0.34&#xff0c;考虑到其稳定性、可靠性还需一定周期保证&#xff0c;所以使用官方版求稳定仍然建议5.7系列。MySQL官方下载链接&#xff1a;MySQL官网下载 二、MySQL的安装 1、右击下载完成的安装包 2、点击Custom >> Next 3、…

【LeetCode】每日一题 2023_11_30 确定两个字符串是否接近 (数组、排序、哈希/位运算、脑筋急转弯)

文章目录 刷题前唠嗑题目&#xff1a;确定两个字符串是否接近题目描述代码与解题思路 结语 刷题前唠嗑 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01; 刷完今天&#xff0c;我的每日一题就坚持一个月啦&#xff0c;月度勋章要到手啦 今早很尴尬&#xff0c;…

【C++】POCO学习总结(八):通知Notifications和事件Events

【C】郭老二博文之&#xff1a;C目录 1、Notifications和Events的区别 1&#xff09;通知Notifications&#xff1a;如果观察者不知道或不关心事件的来源&#xff0c;则使用通知Notifications。 Poco::NotificationCenter或Poco::NotificationQueue位于源source和目标target之…

【JS Promise, Promise.all 与 async/await用法详解】

目录 PromisePromise基本使用Promise可进行连续回调Promise回调可接受入参1.工作原理 async/await总结参考文档&#xff1a; 异步 let a 0setTimeout(() > {a 1}, 1000)console.log(a) // 0此时这个延迟就成为异步执行的了&#xff0c;a值还没有变1就被使用输出&#xff0…

BLP9H10-30GZ LDMOS 功率晶体管 Ampleon

BLP9H10-30GZ 30W塑料LDMOS 功率晶体管&#xff0c;适用于频率范围为616 MH 至960 MHz的基站应用。 BLP9H10-30GZ 特点和优势&#xff1a; 高效率 出色的耐用性 专为宽带操作而设计 出色的热稳定性 高功率增益 集成ESD保护 有关 RoHS 合规性 BLP9H10-30GZ应用程序&…

上海震坤行被评为虹桥生产线互联网服务高质量发展平台

上海震坤行被评为虹桥生产线互联网服务高质量发展平台 10月12日&#xff0c;新一期“潮涌浦江投资虹桥”活动暨“战略赋能新机遇&#xff0c;开放引领新高地”——2023虹桥国际中央商务区投资促进大会在上海虹桥举行。 本次活动旨在释放关于推动虹桥国际开放枢纽进一步提升能级…

matplotlib与opencv图像读取与显示的问题

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 最近在用opencv和matplotlib展示图片,但是遇到了一些问题,这里展开说说 首先需要明确的是,opencv和matplotlib读取图片都是通道在最后,而前者默认可见光图像是BGR,后者是RGB.此外还有PIL以及imageio等读取图像的工具…

东明石化集团领导团队参访震坤行工业超市

东明石化集团领导团队参访震坤行工业超市 10月16日&#xff0c;山东东明石化集团&#xff08;以下简称东明石化&#xff09;总裁李治先生一行带队来访参观交流震坤行&#xff0c;与震坤行工业超市董事长兼CEO陈龙、销售负责团队开展座谈。期间&#xff0c;双方就企业数字化转型…

图扑软件受邀出席高交会-全球清洁能源创新博览会

“相聚鹏城深圳&#xff0c;共享能源盛宴” 第二十五届中国国际高新技术成果交易会(简称“高交会”)于 11 月 15-18 日在深圳盛大开幕。高交会由商务部、科学技术部、工业和信息化部、国家发展改革委、农业农村部、国家知识产权局、中国科学院、中国工程院和深圳市人民政府共同…

C#图像处理OpenCV开发指南(CVStar,04)——图片像素访问与多种局部放大效果的实现代码

​​​​​​​ 使用本文代码需要预先设置一点开发环境&#xff0c;请阅读另外一篇博文&#xff1a; C#图像处理OpenCV开发指南&#xff08;CVStar&#xff0c;03&#xff09;——基于.NET 6的图像处理桌面程序开发实践第一步https://blog.csdn.net/beijinghorn/article/deta…

ESP32-Web-Server编程- WebSocket 编程

ESP32-Web-Server编程- WebSocket 编程 概述 在前述 ESP32-Web-Server 实战编程-通过网页控制设备的 GPIO 中&#xff0c;我们创建了一个基于 HTTP 协议的 ESP32 Web 服务器&#xff0c;每当浏览器向 Web 服务器发送请求&#xff0c;我们将 HTML/CSS 文件提供给浏览器。 使用…

[Linux] linux防火墙

一、防火墙是什么 防火墙&#xff08;FireWall&#xff09;&#xff1a;隔离功能&#xff0c;工作在网络或主机的边缘&#xff0c;数据包的匹配规则与由一组功能定义的操作组件处理的规则相匹配&#xff0c;根据特定规则检查网络或主机的入口和出口 当要这样做时&#xff0c;基…

EXCEL一对多关系将结果合并到一个单元格

EXCEL一对多关联结果&#xff0c;合并到1个单元格&#xff0c;变成一对一 需求说明 举例说明 假设给出国家省和国家市的对应表&#xff0c;因为每个省都有很多个城市&#xff08;如图1&#xff0c;截取了部分&#xff09;&#xff0c;属于一对多的情况&#xff1b; 如何将同…