图文详解前端CSS中的Grid布局,你真的可以5分钟掌握

前言

网站的布局是一个网站设计的根本,CSS的Grid布局已经成为了未来网站布局的基本方式。

今天这篇文章我们通过图文,一起看看如何自己实现Grid布局方式。

48e996cc678f450310302249aa8ae543.gif

CSS

第一个Grid布局

首先我们看看最基本的Grid布局是什么样的,HTML页面的代码如下所示。

bc702079ca0d03166322dba38b009eef.gif

HTML代码

然后设置其CSS属性,这里主要展示容器的CSS属性,给子元素添加的color属性就不在这里展示了。

c7aba5d92dfcf3f91e43764dfc8b7e73.gif

CSS属性

在页面上看到的效果如下,目前因为没有对子div元素做任何设置,会自动将子div沿垂直方向排列。

cce3187ff2ca074187d82736b8edbc80.gif

页面效果

设置行和列

为了让外层的div(wrapper)为一个网格容器,需要设置其行数和列数,就像一个表格一样。

此时就需要用到grid-template-columns和grid-template-rows两个属性值。

  • grid-template-columns

用于设置网格容器的列属性,其实就相当于列的宽度。当我们需要几列展示时,就设置几个值,这个属性可以接收具体数值比如100px,也可以接收百分比值,表示占据容器的宽度。

需要注意的是:当给容器设定了宽度时,grid-template-columns设定的百分比值是以容器的宽度值为基础计算的。如果未设置宽度时,会一直向上追溯到设置了宽度的父容器,直到body元素。

比如我们设置了以下的CSS属性。

b3845732dde17c5a0c6474435de56df3.gif

CSS属性

可以看出三列宽度加起来的百分比值为120%,而且wrapper容器并未设置宽度,会一直向上追溯到body元素,这样三列的总宽度已经超过了body的宽度,因此会出现滚动条。

4018081120caf12ce1b9917593a6324b.gif

页面效果

  • grid-template-rows

用于设置网格容器的行属性,其实就相当于行的高度,其特性与grid-template-columns属性类似。

下面简单修改grid-template-columns和grid-template-rows两个属性的值。

dca08d4111a7ea419aa6a34080eb1407.gif

CSS值

得到的效果图如下所示。

fed0ba754c27bbcec0829d430b39e5a6.gif

效果图

放置子元素

接下来我们看看别的情况,通过CSS属性设置3*3的网格。

cd12a4adfb471c4c58a4a7d8a080d93c.gif

CSS属性

在页面上的呈现方式如下所示。

f5247cd64a5142ff30b3dcbf21f231f5.gif

从页面上看我们看不出有什么问题,但是打开控制台后可以发现,这个网格已经占据了3*3的空间。它后面的元素只能排列在所有的网格后面。

1be0ea569b051991fc19c93ea2631455.gif

页面实际情况

不规则排列

当我们需要得到特殊的排列方式,比如占满整行,占满整列,二三行合并等等。

这就需要用到grid-column和grid-row属性,表示行网线和列网线的序号。通过设置start和end值,来进行网格的合并。

cee07dc7c816d4f95b85403f037e736b.gif

网线序号

我们重新给wrapper容器内部的div添加class类。

553183661256f5a05f4916db8fde3d67.gif

HTML代码

然后添加以下的CSS代码,给不同的网格特定的行号和列号。

6f5b8e16e64d49bc295ce28db956dc64.gif

CSS代码

最终得到的效果图如下所示。

99730f8d7d78713f569ee5776076f740.gif

页面效果图

结束语

今天这篇文章介绍了CSS中Grid布局的基础知识,应该可以很快掌握,其他的复杂点的网格布局大家也可以自己去尝试。

web前端/H5/javascript学习群:250777811
 
欢迎大家关注我的微信号公众号,公众号名称:web前端EDU。扫下面的二维码或者收藏下面的二维码关注吧(长按下面的二维码图片、并选择识别图中的二维码)

 

1183589-20171128153826144-1028058789.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值