CSS学习之Grid布局的学习 | 青训营

简介: CSS学习之Grid布局的学习 | 青训营

什么是Grid布局🤽‍♂🤽‍♂


首先Grid有"网格"的意思,所以Grid布局也可以成为网格布局,简而言之就是将页面分为网格,然后让元素去填充


好处是什么?🚴‍♀🚴‍♀


我们基本上都使用过flex布局,实际上,Grid布局要比flex布局更加的方便,Grid布局是二维布局,而flex是一维布局

简而言之,其实就是Grid布局将容器分为了行和列,我们可以对网格进行划分从而满足我们布局的需求,而flex布局只能从行来处理问题,因此Grid布局无疑是更方便的。


Grid布局的一些基础知识⛹️‍♀️⛹️‍♀️


话不多说我们开始学习Grid布局

首先我们先来讲解一些基础的知识,下面我举一个例子来简单的说明一下。

演示地址

HTML部分

 <div class="box">
    <div class="item1">sadas</div>
    <div class="item2">ssd</div>
    <div class="item3">ssad</div>
    <div class="item4">fasf</div>>
  </div>

CSS部分

.box{
  width:100%;
  display:grid;
  grid-template-columns:repeat(3,200px);
  grid-template-rows:100px 200px;
  grid-gap: 20px;
  .item1{   background-color:red;  }
  .item2{ background-color:yellow;  }
  .item3{background-color:blue;  }
  .item4{ background-color:green;}
}

在这个案例当中我们首先通过display:grid;设置父级元素盒子样式,当我们这样做了之后,他的子系盒子就会受到影响变成网格布局

然后我们呢还可以通过 grid-template-rowsgrid-template-column这两种方式来分别划分行和列,上面的那种写法比较的简洁,之恶使用了repeat,第一个参数就是表明要分成的行数或者列数,后面第二个参数就是长度。


核心部分(基础)


  • grid-template-columns:repeat(3,200px)这个属性所表达的含义就是将容器分为三列,每列的宽度为200px。
  • grid-template-rows:100px 200px这个属性所表达的就是将容器分为两行,第一行宽度为100px,第二行的宽度为200px
  • grid-gap: 20px这个属性所表达的含义就是行和列之间的间隔。

可能学习到这里大家还是感觉这个gird布局不也不过如此吗,也是很单一,很死板,那么你就错误了,下面请听我继续讲解。

.grid-item {
  grid-column: 1 / 3; /* 跨越从第1列到第3列 */
  grid-row: 2;       /* 占据第2行 */
}

这个属性可以实现子元素中的位置跨越,这个是什么意思呢?接下来我们将详细的讲解一下。

image.png

因为Grid布局其实就是将容器划分为一个一个的网格,那么肯定就有网格线,我们在定义网格的时候,其实定义的是行和列的轨道,然后Grid会根据我们定义的网格轨道的行和列来定义网格线的编号,以便于我们对于其中元素的定义。

使用这种布局的相较于flex布局可以更加的自由定义

所谓的”网格线“其实就是因为在进行盒子的分割的过程中产生的边界线,比如如果我将一行分成3列的这种形式(就如上图所示)那么就自然会生成4条线(不要被上图中的紫色格子给迷惑了)

但是值得注意的是,我们从父级这样划分,但是子级不一定只占满一个盒子,我们可以横跨多个(根据自己实际的所需的大小来定义)

所以 grid-column: 1 / 3这个属性的含义就是这个盒子横跨第1条线到第3条线。

grid-row: 2;这个属性就是表明这个盒子占据第2行,然后加上上面的属性横跨第1条线到第3条线。

image.png

如上图所示这是我们加上这个样式之后,第二行的盒子果然横跨了三条线,这是在原来flex布局中无法实现的。


间距的设置


.grid-container {
  grid-gap: 10px; /* 行和列之间的间隔 */
}

image.png

至于说这部分代码就比较好理解了,这是为了每个网格之间隔开一段的间距,上面这张图是在网页选中的情况下展示的(效果不太好将就一下哈),可以看到行和列之间都是同样的间隔距离10px,可以使盒子之间的距离显得不是那么的紧凑。


居中的设置


.grid-container {
  justify-items: center; /* 水平居中对齐 */
  align-items: center;   /* 垂直居中对齐 */
}

这部分和flex布局比较相似,都是设置盒子的水平居中和垂直居中,比较的好理解。


总结 🛰🛰


这部分只是grid布局的一个基础部分,只能算使入了一个门,想要真正的掌握好grid布局还需要更加丰富的知识,后续我会继续给大家更新,同时也是我的再一次学习。

相关文章
|
11月前
|
前端开发
用 CSS Grid 轻松构建复杂布局
用 CSS Grid 轻松构建复杂布局
408 83
|
7月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
transition过渡属性 早期在Web中要实现动画效果,都是依赖于JavaScript或Flash来完成。 但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化, 让效果显得更加细腻。简单点说,就是通过鼠标经过、获得焦点,被点击或对元素任何改变中触发, 并平滑地以动画效果改变CSS的属性值。 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 在默认样式中声明元素的初始状态样式; 声明过渡元素最终状态样式,比如悬浮状态; 在默认样式中通过添加
363 1
|
7月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
transform变形 css3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的 功能。 CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件 呈现出丰富的外观。 借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了transition动画。 transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画时间,就可保证动画播放。 比transitio
351 0
|
7月前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
240 1
|
7月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
471 0
|
8月前
|
前端开发 JavaScript
HTML/CSS/JavaScript基础学习day03-作业
本教程通过多个实例讲解JavaScript中for循环的常见用法,包括遍历数组、元素加1、求最大值/最小值、计算平均值、过滤偶数及字符串拼接等操作,并附有代码示例和运行结果图。
117 3
|
10月前
|
Web App开发 前端开发 数据可视化
用 CSS Grid 实现高效布局的 3 个实战技巧
用 CSS Grid 实现高效布局的 3 个实战技巧
|
9月前
|
前端开发 JavaScript
HTML/CSS/JavaScript基础学习day01
阿铭学习HTML基础,包括VSCode快捷生成代码、常用标签如head、title、body、img、a、p等的使用,以及CSS选择器的优先级和基本样式设置,适合前端入门学习。
267 12
|
8月前
|
前端开发 JavaScript 算法
HTML/CSS/JavaScript基础学习day03-作业
本内容包含多个 JavaScript 编程示例,涵盖数组遍历、条件筛选、字符串处理、数值计算等常见操作,适合练习基础算法与逻辑思维。
179 5