CSS+HTML<网格背景效果>

image.png

知识点:
这里涉及的知识点其实很少,只要需要你去理解具体含义
其中包括 background: linear-gradient(),background-size,background-repeat
没错,只要你掌握了以上 3 点就能实现这种效果!!!

下面会告诉大家如何具体实现此效果,其中虚线部分的绘制比较麻烦,但是也是可以实现,所以接下来会一一讲解~~


实线网格绘制:

<!-- html部分 -->
 <div class="grid-shi"></div>
   .grid-shi{
     height: 100vh;
     background: linear-gradient(to right,#ccc 50px,transparent 50px);
   }

这个你应该看得懂,稍微会点css都知道,此时背景就是一个往右50px为灰色的背景图片,因为之后的为transparent所以50px之后都是透明色,也就是啥都木得

image.png

   .grid-shi{
     height: 100vh;
     background: linear-gradient(to right,#ccc 50px,transparent 50px);
     background-repeat: no-repeat;/* 默认为 repeat */
     background-size: 100px 100px;
   }

这里的background-size: 100px 100px;相当于把背景放到一个100*100的容器里面,因为background-repeat默认为 repeat ,所以我这里设置了 no-repeat方便理解,那如果不加又会是什么样呢?

image.png

background-repeat: repeat;
background-size: 100px 100px;

页面就会变成很多个100*100的小模块,而每个小模块里面,都会有一个50px灰-透明的背景,当然这是从左往右的设置,如果再加上一个从上往下的设置呢?

image.png

 .grid-shi{
     height: 100vh;
     background: 
     linear-gradient(to right,#ccc 50px,transparent 50px),
     linear-gradient(to bottom,#ccc 50px,transparent 50px);
     background-repeat: repeat;/* 默认为 repeat */
     background-size: 100px 100px;
   }

这样看起来不就实现了网格的样子。
当然,现在还是有点粗的,那么你 背景设细一点,模块分小一点

image.png

     linear-gradient(to right,#ccc 1px,transparent 1px),
     linear-gradient(to bottom,#ccc 1px,transparent 1px);
     background-repeat: repeat;/* 默认为 repeat */
     background-size: 10px 10px;

这样就实现了你最终要的效果了!!


image.png

虚线网格绘制:

 <div class="grid-xu"></div>

知道了实线怎么绘制后,你可能会想虚线怎么搞。反正我也是琢磨了好久,虽然有些复杂,不过还是实现了。
这里我就大致讲下原理,具体理解,建议你还是直接到最下面看代码吧!!
::before ::after的使用
这里我先设置一个背景色 红色,注意:是红色

   .grid-xu::before{
     background: linear-gradient(to right,white 25px,transparent 25px),
     linear-gradient(to bottom,blue 25px,transparent 25px);
     background-size: 50px 200px;
   }
   .grid-xu::after{
     background: linear-gradient(to bottom,white 25px,transparent 25px),
     linear-gradient(to right,blue 25px,transparent 25px);
     background-size: 200px 50px;
   }

::before,右::after

image.png

接下来把红色背景色改成和white一样的白色,不就成了虚线的模样了,然后接下来需要的是把他们2个叠加到一起,给个透明度,就得到效果了。
可能你还会不太明白,那么就动起小手手,自己摸索摸索吧~~
这里的问题就是,背景色必须要和你设置形成虚线起始色值一直,这里用的 white 来实现虚线,那么背景色就必须是白色!! 而且如果想实现叠加,就一定别忘记设置透明度,不然只会被::after那层覆盖掉~
image.png

点点背景:
这里把渐变修改为径向渐变就实现点点背景了,原理和前面说的都是一样的

 background: radial-gradient(circle , #5a5a5a .5px, transparent .5px);
 background-size: 10px 10px;

image.png

若想实现图片和背景的融合,可以直接通过 mix-blend-mode: difference; 去实现
image.png

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    :root{
      --gridSizeXu:20px; /* 虚线网格大小 */
      --gridSizeShi:60px; /* 虚线网格大小 */
      --gridColor:#5f5f5f; /* 线条颜色 */
    }
    body{
      height: 100vh;
      margin: 0;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    /* 虚线部分 */
   .grid-xu{
     overflow: hidden;
     width: 100%;
     height: 100%;
     position: fixed;
     z-index: -2;
     transform: scale(1.1);
   }
   .grid-xu::before, .grid-xu::after{
     opacity: .5;
     content: '';
     background-repeat: repeat;
     position: absolute;
     width: 100%;
     height: 100%;
     left: 0;
     top: 0;
   }
   .grid-xu::before{
     /* 从左往右 */
     background: linear-gradient(to right,white 1px,transparent 1px),
     linear-gradient(to bottom,var(--gridColor) .5px,transparent .5px);
     background-size: 3px var(--gridSizeXu);
   }
   .grid-xu::after{
     /* 从上往下 */
     background: 
     linear-gradient(to bottom,white 1px,transparent 1px),
     linear-gradient(to right,var(--gridColor) .5px,transparent .5px);
     background-size: var(--gridSizeXu) 3px;
   }
   /* 实线条部分 */
   .grid-shi{
    overflow: hidden;
     width: 100%;
     height: 100%;
     position: fixed;
     z-index: -1;
     transform: scale(1.1);
     background: linear-gradient(to right,var(--gridColor) .5px,transparent .5px),
     linear-gradient(to bottom,var(--gridColor) .5px,transparent .5px);
     background-size: var(--gridSizeShi) var(--gridSizeShi);
     background-repeat: repeat;
   }
   .content{
     text-align: center;
   }
   .content h1{
    font-weight: 300;
    letter-spacing: .7rem;
    margin: 0;
   }
   .content p{
     font-size: 14px;
    font-weight: 200;
    text-transform: uppercase;
    letter-spacing: .1rem;
    text-decoration: line-through;
    color: #5a5a5a;
   }
  </style>
</head>
<body>
 <div class="grid-xu"></div>
 <div class="grid-shi"></div>
 <div class="content">
   <h1>网格背景</h1>
   <p>The grid background</p>
 </div>
</body>
</html>

其他方法:

        body {
            height: 100vh;
            margin: 0;
            background-image:
                repeating-linear-gradient(0deg, #000 0 .5px, transparent .5px 20px),
                repeating-linear-gradient(90deg, #000 0 .5px, transparent .5px 20px);
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,710评论 4 376
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,839评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,295评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,776评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,198评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,074评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,200评论 2 322
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,986评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,733评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,877评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,348评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,675评论 3 265
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,393评论 3 246
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,209评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,996评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,212评论 2 287
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 36,003评论 2 280

推荐阅读更多精彩内容

  • 目录 Day01标签行元素 Day02表单元素css选择器伪类选择符行内元素块元素表格 Day03文本相关属性列表...
    Moquyun阅读 482评论 0 0
  • 本文章主要整理了html入门的基础知识点 图片 <img> img { border-radiuds: 3px; ...
    壞忎阅读 249评论 0 3
  • # CSS样式规则overflow 使用HTML时,需要遵从一定的规范。CSS亦如此,要想熟练地使用CSS对网页进...
    低调迷人的反派角色阅读 962评论 0 1
  • 话题背景:如今网页展示的姿势是这样的 图片来自:设计之家 炫酷的网页展示,支撑它的正是强大的CSS3,还有什么理由...
    aliensq阅读 1,971评论 0 2
  • 只是总结了一些平时容易忘记的知识点,太基础的没摘录,望大家不喜就喷。 0.HTML和CSS 1.标签子元素 .ul...
    小菜小半碟阅读 327评论 0 1