css中grid布局的基本内容介绍(附示例)

本篇文章给大家带来的内容是关于css中grid布局的基本内容介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

CSS网格布局(又称“网格”),是一种二维网格布局系统。CSS在处理网页布局方面一直做的不是很好。一开始我们用的是table(表格)布局,然后用float(浮动),position(定位)和inline-block(行内块)布局,但是这些方法本质上是hack,遗漏了很多功能,例如垂直居中。后来出了flexbox盒布局,解决了很多布局问题,但是它仅仅是一维布局,而不是复杂的二维布局,实际上它们(flexbox与grid)能很好的配合使用。

浏览器支持情况

在我们开始正式学习Grid布局之前,先看一下can i use上grid布局在各个浏览器下的支持情况是很有用的,

2913831426-5bd1c3d17b4a3_articlex.png

基本概念

要想学好Grid布局的用法,基本概念的介绍是少不了的,虽然看起来比较枯燥。

网格容器(Grid Container)

通过display属性设置属性值为grid或inline-grid可以创建一个网格容器。网格容器中的所有子元素就会自动变成网格项目(Grid item)

立即学习“前端免费学习笔记(深入)”;

网格线(Grid Line)

组成网格线的分界线。它们可以是列网格线(column grid lines),也可以是行网格线(row grid lines)并且居于行或列的任意一侧

网格轨道(Grid Track)

两个相邻的网格线之间为网格轨道。你可以认为它们是网格的列或行

网格单元(Grid Cell)

两个相邻的列网格线和两个相邻的行网格线组成的是网格单元,它是最小的网格单元

网格区(Grid  Area)

网格区是由任意数量网格单元组成

基本属性及作用

一个简单例子

要介绍Grid布局属性,让我们先从一个简单例子开始:

3421209209-5bd1ca34e16dc_articlex.png

如上图所示,如果我们要实现一个3×3的正方形矩阵,用Grid布局要怎么实现?

 
.container {    display: grid;    width: 200px;    height: 200px;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);    grid-row-gap: 10px;    grid-column-gap:10px;}.container p {    background-color: #ccc;    border: 1px solid #333;}

如上面代码所示,3×3的矩阵布局,用Grid布局去写,非常简单方便,相对于使用其他布局来说,Grid布局的优点就显现出来了,那么,接下来就让我们看看Grid局部中那些常用属性:

grid-template-rows:指定的每个值可以创建每行的高度。行高的尺寸可以是任何非负值,长度可以是px、%、em等长度单位的值

grid-template-columns:指定的每个值来创建每列的列宽

repeat函数:使用repeat()可以创建重复的网格轨道。这个适用于创建相等尺寸的网格项目和多个网格项目,repeat()接受两个参数:第一个参数定义网格轨道应该重复的次数,第二个参数定义每个轨道的尺寸

grid-column-gap和grid-row-gap属性用来创建列与列,行与行之间的间距,间距(Gap)可以设置任何非负值,长度值可以是px、%、em等单位值。

网格线号码定位

依旧是上面html代码,一个3×3的矩阵,不同的是这次我们通过网线号码来定位某一个特定方块。

.container {    display: grid;    width: 200px;    height: 200px;    grid-template-rows: repeat(3, 50px);    grid-template-columns: repeat(3, 50px);}.container div {    background-color: #ccc;    border: 1px solid #333;    grid-column-start: 2;    grid-column-end: 3;    grid-row-start: 2;    grid-row-end: 3; /*  grid-area: 2/2/3/3; */  }

通过上面的代码我们可以实现如下效果:

3213050989-5bd1d37006d6d_articlex.png

我们定位矩阵正中间的小方块显示出来,其余的就不显示了,下面我们网格线号码定位的那些属性:

每条线是从网格轨道开始,网格的网格线从1开始,每条网格线逐步增加1

grid-row-start:表示开始的行网格线序号

grid-row-end:表示结束的行网格线序号

grid-column-start:表示开始的列网格线序号

grid-row-end:表示结束的列网格线序号

如果一个网格项目跨度只有一行或一列,那么grid-row-end和grid-column-end不是必需的

grid-area:网格区域,也是用来定位,如果只提供一个值,它指定了grid-row-start和grid-column-start的值。如果提供两个值,第一个值是grid-row-start、grid-column-start的值,第二个值是grid-row-end、grid-column-end的值,两者之间必须要用/隔开。如果指定四个值,第一个值对应grid-row-start,第二个值对应grid-column-start,第三个值对应grid-row-end和第四个值对应grid-column-end

网格区域命名定位网格项目

通过上面的例子,我们知道了如何用网格线去定位网格项目,接下来我们将学习如何通过网格区域的命名来定位网格项目,老样子,依旧从一个例子开始:

.container {    display: grid;    width: 400px;    height: 400px;    grid-template-rows: repeat(3, 100px);    grid-template-columns: repeat(3, 100px);    grid-template-areas: "header header2 header3" "body body2 body3" "footer footer2 footer3";}.container div {    background-color: #ccc;    border: 1px solid #333;}.container .first {    grid-row-start: header2;    grid-row-end: body2;    grid-column-start: header;    grid-column-end: header2;}

1078606238-5bd4155fb96d9_articlex.png

如上述例子看到的,本来是一个3×3的矩阵,但是通过区域命名的方式,将第一个p设置了跨两行两列,接下来让我们一起了解一下网格区域命名定位网格项目的相关属性:

像网格线名称一样,网格区域的名称也可以使用grid-template-areas属性来命名。引用网格区域名称也可以设置网格项目位置

设置网格区域的名称应该放置在单引号或双引号内,每个名称由一个空格符分开。网格区域的名称,每组(单引号或双引号内的网格区域名称)定义了网格的一行,每个网格区域名称定义网格的一列

grid-row-start和grid-row-end通过区域命名分别设置了行开始的位置和结束,grid-column-start和grid-column-end通过区域命名分别设置了列开始的位置和结束位置

总结

这篇文章简单的介绍了一些Grid布局的属性和用法,但没有涉及所有,Grid布局还有很多属性和用法需要自己去探索,通过不同属性的排列组合,可以发掘不同的玩法,这不正是布局的魅力吗?

以上就是css中grid布局的基本内容介绍(附示例)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1612875.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 03:16:29
下一篇 2025年12月24日 03:16:41

相关推荐

  • CSS如何实现图片列表?(代码实例)

    css如何实现图片列表?相信有很多刚刚接触css的朋友都会有这样的疑问。本章就给大家介绍css如何实现图片列表?(代码实例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 CSS图片列表效果图: SS图片列表实现的HTML代码: 我爱CSS画廊 @@##@@ 用css网站布局之十…

    好文分享 2025年12月24日
    000
  • css如何设置超链接样式?css设置超链接样式的方法(代码示例)

    在前端网站的开发中,超链接是一个重要的组成部分,而好看的超链接样式可以为前端页面加分。那么如何来设置超链接样式?本篇文章就给大家简单介绍一下css设置超链接样式的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 首先我们来看看初始的超链接在浏览器上的样式: 是不是觉得不好看,字…

    2025年12月24日
    000
  • css中clip属性的应用方法(附代码)

    本篇文章给大家带来的内容是关于css中clip属性的应用方法(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 先看效果 clip 属性剪裁绝对定位元素。 当一幅图像的尺寸大于包含它的元素时会发生什么呢?”clip” 属性允许您规定一个元素的可见尺寸,…

    2025年12月24日
    000
  • 移动端下弹框禁止背景滑动的实现方法介绍(附代码)

    本篇文章给大家带来的内容是关于移动端下弹框禁止背景滑动的实现方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 茴字写法有很多种,找到最适合的才是好的。 以下下方法在一屛之内是可行的 body;html 设置overflow:hidden .overflow-hidd…

    好文分享 2025年12月24日
    000
  • css中display属性和border属性常遇问题讲解

    本篇文章给大家带来的内容是关于css中display属性和border属性常遇问题讲解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 因为HTML很少有太复杂的问题,所以直接写一篇关于CSS的常见问题及解答啦~ display: none;和visibility:hidden;的区…

    2025年12月24日 好文分享
    000
  • css中浮动的常见用法以及清除浮动的介绍(代码示例)

    本篇文章给大家带来的内容是关于css中浮动的常见用法以及清除浮动的介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 浮动是CSS中一个相对比较麻烦的属性,与之伴随的通常是清除浮动。今天我们一起来搞定浮动。 常见的用法 事实上,当我们将一个元素设置成浮动时,达到的效果如…

    2025年12月24日 好文分享
    000
  • css实现文本超出滚动显示时隐藏滚动条的两种方法(代码示例)

    如何实现文本超出部分滚动显示,并隐藏滚动条?本篇文章就给大家介绍css实现文本超出后滚动显示效果,并且滚动条隐藏的两种方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 首先css要实现文本超出后滚动显示,我们就会使用到css overflow 属性,相信大家对于css over…

    2025年12月24日
    000
  • css实现简单背景模糊的方法(代码示例)

    本篇文章给大家带来的内容是介绍css实现简单背景模糊的方法(代码示例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 使用filter属性来设置模糊值 效果: css样式: .cover { width: 600px; height: 300px; position: relat…

    2025年12月24日
    000
  • CSS中BFC(块级格式化上下文)的作用介绍

    本篇文章给大家带来的内容是关于css中bfc(块级格式化上下文)的作用介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 定义 BFC全称为block formatting context,意为块级格式化上下文,是Web页面中盒模型布局的css渲染模式。 可能上面的解释看了有点懵逼…

    2025年12月24日 好文分享
    000
  • css如何添加文字下划线样式?(代码详解)

    css如何添加文字下划线样式?本篇文章就给大家介绍css添加文字下划线样式的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 首先我们来了解一下css添加文字下划线样式的方法有哪些。 1、css text-decoration属性添加文字下划线样式 2、css border-b…

    2025年12月24日
    000
  • 实例详解html+css实现静态分页效果(附代码)

    大家在浏览网站时有没有注意到网页上的分页效果,正在学习html和css的小伙伴,你会写静态html分页代码吗?这篇文章就结合实例给大家介绍html分页效果的制作步骤,最后将html分页代码分享给大家,供大家参考,感兴趣的小伙伴可以看看哦。 实现分页效果需要用到很多CSS中的属性,比如float浮动,…

    2025年12月24日
    000
  • CSS如何设置滚动条样式?CSS设置滚动条样式方法

    现在很多项目中都用到了滚动条,而且在有的时候,用到的是模拟滚动条,很多大型邮箱都是利用css样式来设置的,那么css如何设置滚动条样式?css如何设置滚动条样式方法有哪些? 一、webkit下面的CSS设置滚动条 上面是滚动条的主要几个设置属性,还有更详尽的CSS属性 :horizontal:水平方…

    2025年12月24日
    000
  • css中伪类和伪元素有什么区别?:before和::before的区别

    本篇文章给大家带来的内容是介绍css中伪类和伪元素有什么区别?:before和::before的区别。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 伪类用于选择DOM树之外的信息,或是不能用简单选择器进行表示的信息。前者包含那些匹配指定状态的元素,比如:visited,:acti…

    好文分享 2025年12月24日
    000
  • css如何设置虚线边框?css设置虚线边框的方法示例

    在网页布局中,有时候为了整体网页的美观可能需要设置虚线边框,那么虚线边框怎么设置呢?本篇文章就来给大家介绍一下如何使用css来设置虚线边框。 首先我们应该知道css的border为边框属性,可以实现对象边框的效果,像是设置边框宽度、边框颜色、边框样式(实线还是虚线)等。 下面我们就来具体看看css的…

    2025年12月24日 好文分享
    000
  • 将导航栏固定在页面顶部的方法(图文详解)

    大家在浏览网站时有没有发现,几乎每个网站都有导航栏,而且有些导航可以固定在顶部不动,不管滚动条移动到哪里,都会固定在一个位置,你知道顶部固定导航栏怎么写吗?这篇文章就给大家讲讲如何使导航栏固定在顶部,以及导航栏固定在顶部的代码,有一定的参考价值,感兴趣的朋友可以看看。 实现将导航栏固定在顶部需要用到…

    2025年12月24日
    000
  • CSS如何实现三列布局?实现三列布局的3种方法(代码示例)

    本篇文章给大家带来的内容是介绍css如何实现三列布局?实现三列布局的3种方法(代码示例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 三列布局指的是两边两列定宽,中间的宽度自适应。 常用三种方法: 定位 浮动 立即学习“前端免费学习笔记(深入)”; 弹性盒布局 定位方式 最直观…

    2025年12月24日
    000
  • CSS如何实现文字两端对齐?实现文字两端对齐的方法

    本篇文章给大家带来的内容是介绍css如何实现文字两端对齐?实现文字两端对齐的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 最近的项目遇到了这样的需求:(要求标题部分不管文字多少,都必须两端对齐) 如下图: 当时也没有多想直接使用‘ ’进行代替,毕竟产品同学想快一点看到效果,…

    2025年12月24日
    000
  • 浅谈对CSS盒模型的认识?CSS盒模型的介绍

    本篇文章给大家带来的内容是浅谈对css盒模型的认识?css盒模型的介绍。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 任何一个网页的搭建都离不开盒模型的堆砌。应该说css模型是web的一个根基,最后呈现出来的效果不同无非就是在高宽、内容与背景删的区别而已。 那么CSS模型有什么认…

    2025年12月24日
    000
  • css如何实现中间文字,两边横线的标题效果?(代码示例)

    本篇文章给大家带来的内容是介绍css如何实现中间文字,两边横线的标题效果?(代码示例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 1. vertical-align属性实现效果: vertical-align 属性设置元素的垂直对齐方式。 该属性定义行内元素的基线相对于该元素…

    2025年12月24日
    000
  • 如何区分css中的:not()选择器和jQuery中的.not()方法?(代码示例)

    本篇文章给大家带来的内容是介绍如何区分css中的:not()选择器和jquery中的.not()方法?(代码示例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 因为老是将这两个的not方法弄混,所以写一下备忘。 css中:not()选择器用法 :not 伪类选择器可以筛选不符合…

    好文分享 2025年12月24日
    000

发表回复

登录后才能评论
关注微信