当前位置: 首页 > Web前端 > CSS

哎~又到了学习网格布局的时候了GRID布局入门

时间:2023-03-31 11:17:42 CSS

概念学了概念好像没什么用。今天我们就用Grid来完成两个简单的布局。声明容器显示:grid;或显示:内联网格;或显示:子网格;。grid和inline-grid很好理解为块级网格和inline-block级网格。subgrid用于定义子网格,子网格会继承父网格的一系列规范。分区容器定义水平和垂直网格轨道。这里我们尝试定义一个4*4的网格。代码

1
2
3
4
5
6
.grid{显示:网格;网格模板列:60px60px60px60px;网格模板行:60px60px60px60px;grid-gap:5px;}.grid>div{背景:灰色;/*别被下面的代码搞糊涂了,只是为了好看,哈哈*/display:flex;颜色:#fff;字体大小:150%;证明内容:居中;align-items:center;}grid-template-columnsgrid-template-columns用于定义网格列的宽度和轨道的宽度。代码表示容器分为4列,列宽60px。宽度可以随意改变。grid-template-rowsgrid-template-rows用于定义网格行的高度,代码表示容器被分成4行。通过上面两行代码,实现了4*4的网格划分。如果您不相信我,请尝试增加div的数量。grid-gap用来控制网格的间距,准确的说是用来控制网格区域的间距。控制项到此为止,我们的css好像都应用到了容器上了,那么高级点怎么办呢?代码1
2
3
class="item4">4
56.grid{显示:网格;网格模板列:60px60px60px60px;网格模板行:60px60px60px60px;grid-gap:5px;}.grid>div{背景:灰色;哈哈*/显示:flex;颜色:#fff;字体大小:150%;证明内容:居中;对齐项目:中心;}.item1{网格列开始:4;grid-row-start:2;}.item2{grid-column-start:1;网格列端:4;网格行开始:1;grid-row-end:3;}.item3{grid-column:-1/-2;网格行:1/2;}.??item4{网格列:1/跨度2;网格行:-1/-3;}.item5{网格区域:-1/3/-3/4;}.item6{grid-area:-1/5/-3/4;}正如我们在概念文章中讨论的那样,网格线编号为1,2,3,4...要控制网格区域的位置,您需要依赖于这些网格线。下面通过五个例子来说明如何通过控制网格线来实现区域的定位和单元格的合并。grid-column-start&grid-row-startgrid-column-startgrid-row-start用于控制区域的列开始和行开始的位置,请注意我们没有给出grid-column-end和这里的grid-row-end的值,它们的默认值可以简单理解为start的值加一。其实这里有一个跨度的概念。.item1{网格列开始:4;grid-row-start:2;}grid-column-end&grid-row-end开头一定要有个end,grid-column-end,grid-row-end用来控制区域的结束位置。这里有一个知识点需要大家记住。??end的值可以小于start的值。如果你不相信我,试试看。另外,grid-column-start、grid-column-end、grid-row-start、grid-row-end的值都可以为负数。负数表示从后往前数??。.item2{网格列开始:1;网格列端:4;网格行开始:1;grid-row-end:3;}grid-column&grid-rowgrid的相关属性那么多,肯定会有简写的。grid-column是grid-column-start和grid-column-end的简写。网格行是相同的。.item3{网格列:-1/-2;grid-row:1/2;}//相当于.item3{grid-column-start:-1;网格列端:-2;网格行开始:1;网格行尾:2;}spanspan表示跨越多个单元格。作用是不想一直计数的时候可以用span。下面将介绍区域定义的四种写法。.item4{/*1*/grid-column:1/span2;/*2*/网格列:span2/3;/*3*/网格列开始:1;网格列端:跨度2;/*4*/grid-column-start:span2;网格列端:3;/*行相同*/grid-row:-1/-3;}grid-areagrid-area是grid-row和grid-column的简写。顺序是grid-row-start,grid-column-start,grid-row-end,grid-column-end。.item5{grid-area:-1/3/-3/4;}//等价于.item{grid-row-start:-1;网格行尾:-3;网格列开始:3;grid-column-end:4;}这里有一个思考题:span可以用在grid-area中吗??总结这篇文章希望大家能够掌握定义容器和轨道的方法以及划分网格区域的n种方法。推荐大家在cssgridgarden上练习,加深对grid属性的记忆。了解了网格的概念之后,就到了考验大家记忆力的时候了。配套文章深入理解布局神器flexbox欢迎大家指正、批评或留言。QQ群:538631558