网站首页 > 技术文章 正文
前言
网站的布局是一个网站设计的根本,CSS的Grid布局已经成为了未来网站布局的基本方式。
今天这篇文章我们通过图文,一起看看如何自己实现Grid布局方式。
CSS
第一个Grid布局
首先我们看看最基本的Grid布局是什么样的,HTML页面的代码如下所示。
HTML代码
然后设置其CSS属性,这里主要展示容器的CSS属性,给子元素添加的color属性就不在这里展示了。
CSS属性
在页面上看到的效果如下,目前因为没有对子div元素做任何设置,会自动将子div沿垂直方向排列。
页面效果
设置行和列
为了让外层的div(wrapper)为一个网格容器,需要设置其行数和列数,就像一个表格一样。
此时就需要用到grid-template-columns和grid-template-rows两个属性值。
grid-template-columns
用于设置网格容器的列属性,其实就相当于列的宽度。当我们需要几列展示时,就设置几个值,这个属性可以接收具体数值比如100px,也可以接收百分比值,表示占据容器的宽度。
需要注意的是:当给容器设定了宽度时,grid-template-columns设定的百分比值是以容器的宽度值为基础计算的。如果未设置宽度时,会一直向上追溯到设置了宽度的父容器,直到body元素。
比如我们设置了以下的CSS属性。
CSS属性
可以看出三列宽度加起来的百分比值为120%,而且wrapper容器并未设置宽度,会一直向上追溯到body元素,这样三列的总宽度已经超过了body的宽度,因此会出现滚动条。
页面效果
grid-template-rows
用于设置网格容器的行属性,其实就相当于行的高度,其特性与grid-template-columns属性类似。
下面简单修改grid-template-columns和grid-template-rows两个属性的值。
CSS值
得到的效果图如下所示。
效果图
放置子元素
接下来我们看看别的情况,通过CSS属性设置3*3的网格。
CSS属性
在页面上的呈现方式如下所示。
页面呈现
从页面上看我们看不出有什么问题,但是打开控制台后可以发现,这个网格已经占据了3*3的空间。它后面的元素只能排列在所有的网格后面。
页面实际情况
不规则排列
当我们需要得到特殊的排列方式,比如占满整行,占满整列,二三行合并等等。
这就需要用到grid-column和grid-row属性,表示行网线和列网线的序号。通过设置start和end值,来进行网格的合并。
网线序号
我们重新给wrapper容器内部的div添加class类。
HTML代码
然后添加以下的CSS代码,给不同的网格特定的行号和列号。
CSS代码
最终得到的效果图如下所示。
页面效果图
结束语
今天这篇文章介绍了CSS中Grid布局的基础知识,应该可以很快掌握,其他的复杂点的网格布局大家也可以自己去尝试。
猜你喜欢
- 2024-09-29 html2canvas - 动态生成微信分享海报的优质js库
- 2024-09-29 Web前端开发进阶教程:CSS 布局方式详解
- 2024-09-29 CSS-常见布局介绍 css布局有几种
- 2024-09-29 前端笔记-flex 布局 flex布局 order
- 2024-09-29 你要的CSS布局都在这里 css布局技巧
- 2024-09-29 前端Flex布局可视化布局工具介绍,vue和html5快速设计利器
- 2024-09-29 前端样式布局神器-弹性布局flex学习思路
- 2024-09-29 前端flex布局,动图效果,小白也能看懂
- 2024-09-29 前端布局小案例,如何创建漂亮的毛玻璃输入表单卡片效果
- 2024-09-29 如果你还在为前端的布局和JS头疼,你应该看看这篇连载文章
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)