我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CSS怎么定义一个网格

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CSS怎么定义一个网格

这篇文章主要介绍了 CSS怎么定义一个网格的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇 CSS怎么定义一个网格文章都会有所收获,下面我们一起来看看吧。

定义一个网格

可以给父容器的display属性设置为grid或者inline-grid来定义一个网格。这样你就可以使用grid-template-columnsgrid-template-rows属性来创建一个网格。

在这个示例中,创建了一个三列网格,其中三个列的列宽是100px,并且指定列与列之间的间距为10px。同时网格具有三行,每行的高度是自动的,另外行与行之间的间距是10px。简单点说就是一个三行三列的网格,并且列与列之间,行与行之间的间距都是10px

此时浏览器将容器中的子元素自动填入到每个网格单元格中,当超过指定的列数时,网格会自动换行。

CSS怎么定义一个网格

看看代码是怎么完成的:

HTML

复制代码

代码如下:

<font face="Courier New"><font face="Arial">
<div class="wrapper">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
<div class="box d">D</div>
<div class="box e">E</div>
<div class="box f">F</div>
<div class="box g">G</div>
<div class="box h">H</div>
<div class="box i">I</div>
<div class="box j">J</div>
</div></font>
</font>

CSS

复制代码

代码如下:


body {
padding: 50px;
}
.wrapper {
display: grid;
grid-template-columns: 100px 10px 100px 10px 100px;
grid-template-rows: auto 10px auto;
}
.box {
background-color: #444;
color: #fff;
font-size: 150%;
padding: 20px;
}
.b,.d,.g,.i {
background-color:red;
}

定义网格的关键代码:

复制代码

代码如下:


.wrapper {
display: grid;
grid-template-columns: 100px 10px 100px 10px 100px;
grid-template-rows: auto 10px auto;
}

在线案例

从示例效果中可以看出,.wrapper容器通过display:grid;定义成网格,并且使用grid-template-columns:100px 10px 100px 10px 100px;grid-template-rows:auto 10px auto;指定了列宽、列间距,行高和行间距等。对应的子元素.a.c.e.f.h.j列宽度为100px(也就是黑色区域),而.b.d.g.i是列与列的间距10px(也就是红色区域)。而且当子元素在一行填不下时,就会自动换行,如.f.j自动换到第二行显示。

基于网格线的占位区

网格中的单元格是有网格线划分出来的,那么在网格布局中,同样可以使用网格线来给子元素设置占位区域。基于上例,在容器.wrapper下面有十个子元素.a~.j,接下来看如何通过基于网格线来实现各种在网格布局中的区域。

对于网格线,在网格布局中有两种,一种是列线,另一种是行线。对应的个网格单元格都有列线起始线(grid-column-start)、列线终止线(grid-column-end)和行线起始线(grid-row-start)、行线终止线(grid-row-end)。

CSS怎么定义一个网格

如上图所示,紫色的是列网格线,而蓝色的是行网格线,其中高亮大红的那个单元格列起始线是line3,列终止线是line4,行起始线是line3,行终止线是line4。也就是说这四条网格线间的区域是一个单元格。

接下来,看一个示例,如何用网格线实现单元格占位区域:

HTML

复制代码

代码如下:


<div class="wrapper">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
<div class="box d">D</div>
<div class="box e">E</div>
<div class="box f">F</div>
<div class="box g">G</div>
<div class="box h">H</div>
<div class="box i">I</div>
<div class="box j">J</div>
</div>

CSS

复制代码

代码如下:


body {
padding: 50px;
}
.wrapper {
display: grid;
grid-template-columns: 100px 10px 100px 10px 100px 10px 100px;
grid-template-rows: auto 10px auto 10px auto;
}
.box {
background-color: #444;
color: #fff;
font-size: 150%;
padding: 20px;
text-align: center;
}
.a{
grid-column-start: 1;
grid-column-end: 2; 
grid-row-start: 1;
grid-row-end: 2;
}
.b {
grid-column-start: 3;
grid-column-end: 4; 
grid-row-start: 1;
grid-row-end: 2; 
}
.c { 
grid-column-start: 5;
grid-column-end: 6; 
grid-row-start: 1;
grid-row-end: 2;
}
.d { 
grid-column-start: 7;
grid-column-end: 8; 
grid-row-start: 1;
grid-row-end: 2;
}
.e { 
grid-column-start: 1;
grid-column-end: 2; 
grid-row-start: 3;
grid-row-end: 4;
}
.f { 
grid-column-start: 3;
grid-column-end: 4; 
grid-row-start: 3;
grid-row-end: 4;
}
.g {
grid-column-start: 5;
grid-column-end: 6; 
grid-row-start: 3;
grid-row-end: 4;
}
.h {
grid-column-start: 7;
grid-column-end: 8; 
grid-row-start: 3;
grid-row-end: 4;
}
.i {
grid-column-start: 1;
grid-column-end: 2; 
grid-row-start: 5;
grid-row-end: 6;
}
.j {
grid-column-start: 3;
grid-column-end: 4; 
grid-row-start: 5;
grid-row-end: 6;
}

CSS怎么定义一个网格

在线案例

这种方式可以让你的子元素.a~.b定位在任何位置,比如说,你现在想要.a.f对换,那么很简单就能实现:

复制代码

代码如下:

<font face="Courier New">
<font face="Arial">.a{
grid-column-start: 3;
grid-column-end: 4; 
grid-row-start: 3;
grid-row-end: 4;
background:red;
}
.f { 
grid-column-start: 1;
grid-column-end: 2; 
grid-row-start: 1;
grid-row-end: 2;
background:orange;
}</font>
</font>

网格线简写

前面两个示例向大家演示了如何用网格线实现布局,可以说是简单方便,唯一就是写代码麻烦,要什么grid-column-startgrid-column-end等等。其实有一种简写方式,可以让你不再痛苦。

网格线的简写方式,其实就是grid-columngrid-rowstartend值合并在一起,两者之间用/来分隔。比如:

复制代码

代码如下:

<font face="Courier New">
<font face="Arial">.a{
grid-column-start: 1;
grid-column-end: 2; 
grid-row-start: 1;
grid-row-end: 2;
}</font>
</font>

可以写成:

复制代码

代码如下:

<font face="Courier New">
<font face="Arial">.a{
grid-column: 1 / 2; 
grid-row: 1 / 2;
}</font>
</font>

这样一来,上例的代码,我们就可以换成简写方式:

复制代码

代码如下:

<font face="Courier New">
<font face="Arial">.a{
grid-column: 1 / 2; 
grid-row: 1 / 2;
}
.b {
grid-column: 3 / 4; 
grid-row: 1 / 2; 
}
.c { 
grid-column: 5 / 6; 
grid-row: 1 / 2;
}
.d { 
grid-column: 7 / 8; 
grid-row: 1 / 2;
}
.e { 
grid-column: 1 / 2; 
grid-row: 3 / 4;
}
.f { 
grid-column: 3 / 4; 
grid-row: 3 / 4;
}
.g {
grid-column: 5 / 6; 
grid-row: 3 / 4;
}
.h {
grid-column: 7 / 8; 
grid-row: 3 / 4;
}
.i {
grid-column: 1 / 2; 
grid-row: 5 / 6;
}
.j {
grid-column: 3 / 4; 
grid-row: 5 / 6;
}</font>
</font>

在CSS Grid Layout中有一个关键东东,网格区域grid-area。网格区域他是由四条网格线组成的一个空间,简单点说,一个网格单元格也是一个网格区域(因为他也是有四条网格线组成的一个空间),多个单元格合并在一起也是一个网格区域。这样一来,要实现上例的效果,还可以使用网格区域grid-area来完成。

在具体做案例之前,先简单的了解,网格区域是由哪几条网格线组成。组成网格区域的网格线顺序是row-start/column-start/row-end/column-end。每个网格线之间也是使用/来分隔。

接下来将上例使用网格区域改造一下,改造之后的样式代码如下:

复制代码

代码如下:

<font face="Courier New">
<font face="Arial">.wrapper {
display: grid;
grid-template-columns: 100px 10px 100px 10px 100px 10px 100px;
grid-template-rows: auto 10px auto 10px auto;
}
.a{
grid-area: 1 / 1 / 2 / 2;
}
.b {
grid-area: 1 / 3 / 2 /4;
}
.c { 
grid-area: 1 / 5 / 2 / 6;
}
.d { 
grid-area: 1 / 7 / 2 / 8;
}
.e { 
grid-area: 3 / 1 / 4 / 2;
}
.f {
grid-area: 3 / 3 / 4 / 4;
}
.g {
grid-area: 3 / 5 / 4 / 6;
}
.h {
grid-area: 3 / 7 / 4 / 8;
}
.i {
grid-area: 5 / 1 / 6 / 2;
}
.j {
grid-area: 5 / 3 / 6 / 4;
}</font>
</font>

关于“ CSS怎么定义一个网格”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“ CSS怎么定义一个网格”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CSS怎么定义一个网格

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

javascript怎么定义一个方法

这篇文章主要介绍了javascript怎么定义一个方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。定义方法的方式:1、定义式,先定义方法再调用,语法“function 函数
2023-06-15

C#中怎么定义一个数组

这篇文章给大家介绍C#中怎么定义一个数组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C#定义数组一、一维:int[] numbers = new int[]{1,2,3,4,5,6}; //不定长 int[]
2023-06-17

怎么用Dockerfile定义一个镜像

本篇内容介绍了“怎么用Dockerfile定义一个镜像”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!容器准备工作安装Docker,版本为1.
2023-06-19

在c#中怎么定义一个类

在 c# 中,通过使用 class 关键字定义一个类,它是一个模板,用于创建具有特定行为和属性的对象。具体步骤包括:使用 class 关键字定义类名,定义字段、属性、构造函数、方法和事件等类成员。通过这些步骤,可以在 c# 中定义一个类,以
在c#中怎么定义一个类
2024-05-12

java中怎么定义一个常量

在Java中,可以使用`final`关键字来定义一个常量。常量的定义语法为:```final 数据类型 常量名称 = 常量值;```常量的命名规范和变量相同,一般使用全大写字母,多个单词之间使用下划线分隔。以下是定义一个整数常量的示例:``
2023-09-25

python中怎么定义一个空字典

在Python中,可以使用两种方式定义一个空字典。方式1: 使用大括号{}来定义空字典。```pythonmy_dict = {}```方式2: 使用dict()函数来创建一个空字典。```pythonmy_dict = dict()```
2023-08-15

java怎么一次定义多个变量

在Java中,可以使用逗号将多个变量定义在一行上。例如:```javaint a, b, c; // 定义了三个整数变量a、b、cString str1, str2, str3; // 定义了三个字符串变量str1、str2、str3dou
2023-10-10

node.js怎么自定义实现一个EventEmitter

这篇文章主要介绍“node.js怎么自定义实现一个EventEmitter”,在日常操作中,相信很多人在node.js怎么自定义实现一个EventEmitter问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”n
2023-06-20

C#中怎么定义一个线程类

本篇文章为大家展示了C#中怎么定义一个线程类,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C#线程类的定义实例://C#线程类的定义实例 using System; using System.C
2023-06-17

编程热搜

目录