文章目录
- 前言
- 效果图
- 说明
前言
本篇文章主要简单扼要的去实现css网格背景,并进一步探求其应用原理
效果图
css代码
body::before, body::after {position: fixed;top: 0;left: 0;right: 0;bottom: 0;content: '';background-repeat: repeat;pointer-events: none;opacity: 0.5;/* background-color: red; */}body::before {background-image: linear-gradient(to right,black 1px,transparent 1px,transparent 10px),linear-gradient(to bottom,black 1px,transparent 1px,transparent 10px);background-size: 10px 10px;}body::after {background-image: linear-gradient(to right,black 1px,transparent 1px,transparent 100px),linear-gradient(to bottom,black 1px,transparent 1px,transparent 100px);background-size: 100px 100px;}
说明
实现网格背景利用的是background-image属性
background-image 属性设置一个元素的背景图像。
元素的背景是元素的总大小,包括填充和边界(但不包括边距)。
默认情况下,background-image放置在元素的左上角,并重复垂直和水平方向。
提示:请设置一种可用的背景颜色,这样的话,假如背景图像不可用,可以使用背景色带代替。
看一下它的属性
名称 | 说明 |
---|---|
url(‘URL’) | 图像的URL |
none | 无图像背景会显示。这是默认 |
linear-gradient() | 用径向渐变创建 “图像”。 (center to edges) |
repeating-linear-gradient() | 创建重复的线性渐变 “图像”。 |
repeating-radial-gradient() | 创建重复的径向渐变 “图像” |
inherit | 指定背景图像应该从父元素继承 |
其中用到的就是 linear-gradient()
background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
例子:
background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));
这里说明下,to right就是往右进行渐变,to bottom就是往下进行渐变,当然,你也可以自己设置渐变角度 xdeg
具体例子:
1 从左往右的黑红渐变
div{position: absolute;left:50px;top:50px;width: 200px;height: 80px;border:solid 1px red;background-image: linear-gradient(to right,rgba(2,2,2,1),rgb(209, 21, 21));}
2 0角度的黑、红、绿渐变
div{position: absolute;left:50px;top:50px;width: 200px;height: 80px;border:solid 1px red;background-image: linear-gradient(0deg,rgba(2,2,2,1),rgb(209, 21, 21),rgb(74, 209, 21));}
那么我们思考下,如何绘制网格。
网格分为左右和上下。渐变线说白了就是一条条不同色域的线堆叠而成。
我们先来绘制横向的渐变线。
1 横向渐变是从上到下的横线条组成的,就是to bottom,或者是0deg
div{position: absolute;left:50px;top:50px;width: 200px;height: 80px;border:solid 1px red;background-image: linear-gradient(to bottom,transparent 9px,black 1px) ;background-size: 100% 10px;background-repeat: repeat;}
同样的道理,画竖着的线
div{position: absolute;left:50px;top:50px;width: 200px;height: 80px;border:solid 1px red;/* background-image: linear-gradient(to bottom,transparent 9px,black 1px) ;background-size: 100% 10px;background-repeat: repeat; */background-image: linear-gradient(to right,transparent 9px,black 1px) ;background-size: 10px 100%;background-repeat: repeat;}
两个合到一起:
div{position: absolute;left:50px;top:50px;width: 200px;height: 80px;border:solid 1px red;background-image: linear-gradient(to bottom,transparent 9px,black 1px),linear-gradient(to right,transparent 9px,black 1px) ;background-size: 10px 10px;background-repeat: repeat;}
到此,基本就推导出来了。