Grid 布局 - 网格布局

article/2025/9/28 2:36:40

目录

一、什么是Grid布局

二、容器属性值

2.1 grid-template-rows和grid-template-columns

2.1.1 grid-template-columns

2.1.2 grid-template-rows

 2.2 row-grap和column-grap

2.2.1 row-grap

2.2.2 column-grap

2.3 grid-template-area

2.4 grid-auto-flow

 2.5 justify-items(水平方向)和 align-items(垂直方向)

2.5.1 justify-items

2.5.2 align-items 

2.6 justify-content (水平方向) / align-content (垂直方向)

2.7 grid-auto-columns 和 grid-auto-rows

 三、项目属性

3.1 grid-column-start / grid-column-end 和 grid-row-start / grid-row-end

3.2 grid-column / grid-row

3.3 grid-area

 3.4 justify-self / align-self / place-self

3.4.1 设置justify-self

3.4.2 设置align-self

3.4.2 设置place-self

四、基本概念图分享


一、什么是Grid布局

grid布局将容器划分为 行 和 列,产生单元格,可以将其看作为二维布局,也称为网格布局

二、容器属性值

2.1 grid-template-rows和grid-template-columns

需要多少行或列,根据自己需求填写,属性值个数,不填写则自动分配

首先准备容器和项目,并用不同的颜色区分项目

<body><div class="main"><div class="item item-1">1</div><div class="item item-2">2</div><div class="item item-3">3</div><div class="item item-4">4</div><div class="item item-5">5</div><div class="item item-6">6</div><div class="item item-7">7</div><div class="item item-8">8</div><div class="item item-9">9</div><div class="item item-10">10</div></div>
</body>
.main{display: grid;width: 600px;height: 600px;border: 10px solid skyblue;
}
.item{font-size: 50px;background-color: red;color: #fff;
}.item-1{background-color: orangered;
}
.item-2{background-color: orange;
}
.item-3{background-color: palegreen;
}
.item-4{background-color: palevioletred;
}
.item-5{background-color: papayawhip;
}
.item-6{background-color:peru;
}
.item-7{background-color:pink;
}
.item-8{background-color:royalblue;
}
.item-9{background-color: saddlebrown;
}
.item-10{background-color: slateblue;
}

 页面效果展示 - 容器和项目

2.1.1 grid-template-columns

(1)为容器.main的grid-template-columns赋值,例如:规定项目为3列且每个项目的宽度为100px

    /* grid-template-columns: 100px 100px 100px; *//* repeat()函数,简化重复的值 grid-template-columns: repeat(<重复次数>,<数值>) */grid-template-columns: repeat(3,100px);

页面效果展示

 (2)grid-template-columns: repeat(auto-fill,100px),其中auto-fill,有时在单元格大小是固定时,容器未规定宽高时会自动填充 

grid-template-columns: repeat(auto-fill,100px);

页面效果展示 - 设置宽和高600px

 页面效果展示 - 未设置宽高,随浏览器伸缩自动填充

 (3)fr,表示比例关系,网格布局提供了fr关键字

grid-template-columns: repeat(3,1fr);

例如:设置容器宽和高都为600px,grid-template-columns: repeat(3,1fr),分为3分,每份一等分,即每份容器宽度为200px

页面效果展示 - fr

grid-template-columns: 1fr 2fr 3fr;

 页面效果展示 - fr,占据份额不同,容器宽和高都为600px,第3份占据总份额的一半,即宽度为300px

 (4)minmax() 函数,产生一个长度范围,接受两个参数,分为最小值和最大值

    grid-template-columns: 1fr minmax(300px,1fr);

表示第二列项目宽度最小值为300px,最大值为1fr

页面效果展示

页面效果展示 - 缩小浏览器使第二列项目宽度达到300px

2.1.2 grid-template-rows

 为容器.main的grid-template-rows赋值

    /* grid-template-rows: 100px 100px 100px 100px; */grid-template-rows: repeat(4,100px);

页面效果展示

 2.2 row-grap和column-grap

item相互之间的距离

2.2.1 row-grap

    row-gap: 20px;

页面效果展示

 2.2.2 column-grap

    column-gap: 20px;

页面效果展示

 若行和列间距相同则可以缩写

    gap: 20px;

2.3 grid-template-area

一个区域由单个单元格或多个单元格组成,具体使用,由个人决定

区域的命名会影响到网格线,每个区域的起始网格线会自动命名为 区域名-start,终止网格线会自动命名为 区域名-end

    grid-template-areas: 'a b c' 'd e f' 'g h i';

区域不需要利用则用点代替

    grid-template-areas: 'a . c' 'd . f' 'g . i';

2.4 grid-auto-flow

划分网格后,容器的子元素会按照顺序,自动放置在每一个网格。默认的放置顺序是先行后列。

    grid-auto-flow: row;

页面效果展示 - grid-auto-flow属性赋值:row

grid-auto-flow: row dense;

添加dense能够更好得利用空间 

页面效果展示 - 未添加dense

 页面效果展示 - 添加dense

 2.5 justify-items(水平方向)和 align-items(垂直方向)

 设置单元格内水平和垂直的对齐方式

2.5.1 justify-items

justify-items: strat / end / center / stretch

    justify-items: center;

页面效果展示 - justify-items: center

2.5.2 align-items 

    align-items: center;

页面效果展示 - align-items: center

    /* 简写,place-items: <justify-items值> <align-items值>; */place-items: center center;

2.6 justify-content (水平方向) / align-content (垂直方向)

设置整个内容区域的水平和垂直的对齐方式

justify-content: start / end | center / stretch / space-around / space-between / space-evenly
align-content: sstart / end | center / stretch / space-around / space-between / space-evenly

    justify-content: center;

页面效果展示

    align-content: center;

页面效果展示

    justify-content: space-around;align-content: space-around;

页面效果展示

 2.7 grid-auto-columns 和 grid-auto-rows

用来设置多出来的项目宽和高

    grid-template-columns: repeat(3,100px);grid-template-rows: repeat(3,100px);grid-auto-rows: 50px;

页面效果展示

 三、项目属性

3.1 grid-column-start / grid-column-end 和 grid-row-start / grid-row-end

用来指定item的具体位置, 根据在哪根网格线

例如:项目1从网格线1开始到网格线3结束

.item-1{background-color: orangered;grid-column-start: 1;grid-column-end: 3;
}

页面效果展示.

 span跨越几根网格线

    /* grid-column-start: 1; *//* grid-column-end: 3; */grid-column-start: span 2;/* 效果相同 */

3.2 grid-column / grid-row

grid-column: 开始的网格线 / 结束的网格线

    /* grid-column-start: 1; *//* grid-column-end: 3; */grid-column: 1 / 3;/* 效果相同 */

3.3 grid-area

指定项目放在哪一个区域

容器.main设置区域

    grid-template-areas: 'a a a' 'b b b' 'c c c';

项目.item item-1设置区域

    grid-area: b;

页面效果展示

 grid-area属性还可用作grid-row-start、grid-column-start、grid-row-end、grid-column-end的合并
简写形式,直接指定项目的位置

grid-area: <row-start> / <column-start> / <row-end> / <column-end>

    grid-area: 1 / 1 / 3 / 3;

 3.4 justify-self / align-self / place-self

justify-self属性设置单元格内容的水平位置(左中右),跟justify-items属性的用法完全一致,
但只作用于单个项目(水平方向)

align-self属性设置单元格内容的垂直位置(上中下),跟align-items属性的用法完全一致,
也是只作用于单个项目(垂直方向)

place-self属性是align-self属性和justify-self属性的合并简写形式

justify-self: start / end / center / stretch

align-self: start / end / center / stretch

place-self: <justify-self属性值> <align-self属性值>

3.4.1 设置justify-self

justify-self: center;

页面效果展示 - justify-self: center

3.4.2 设置align-self

    align-self: center;

页面效果展示 - 添加上align-self: center

3.4.2 设置place-self

与设置justify-self: center且align-self: center 效果相同

    place-self: center center;

四、基本概念图分享

基本概念图片来源与B站 耕耕老师(id:耕耕技术宅)作图,感觉做得很棒,可以作为基本概念参考图,简单明了


http://chatgpt.dhexx.cn/article/kyKNAXci.shtml

相关文章

微信小程序----Grid(九宫格)(flex实现九宫格布局)

效果二维码 效果图 WXML <view class"section"><view class"tui-table-view"><view class"tui-col-3"><icon class"iconfont icon-shouye"></icon><view>Home</view></view><vie…

前端网格布局grid

网格布局 <style> .container {border:none;display: grid;height: 600px;grid-template-columns: 200px 1fr; /*两列&#xff0c;第一列200px&#xff0c;第二列自适应*/grid-template-rows: 50px 1fr 30px; /*三行&#xff1a;第一行&#xff1a;50px,第二行&#…

css【详解】grid布局—— 网格布局(栅格布局)

网格布局&#xff08;Grid&#xff09;是最强大的 CSS 布局方案 grid布局 和 flex布局的区别 Flex 布局是轴线布局&#xff0c;只能指定"项目"针对轴线的位置&#xff0c;可以看作是一维布局。 Grid 布局则是将容器划分成"行"和"列"&#xff0c…

微信小程序布局技巧(一)

微信小程序布局技巧&#xff08;一&#xff09; 前言小程序布局方式Block布局方式flex布局方式wxss添加样式wxml应用样式效果 flex布局种类justify-content属性align-items属性flex-wrap 属性 应用尾巴 前言 友情提示&#xff0c;阅读本文之前&#xff0c;可能需要有一点微信小…

微信小程序中通过flex实现网格布局(一)

这篇文章主要是通过flex布局实现网格布局。 准备知识&#xff1a; 数组的undefined的问题 一般来说&#xff0c;网格布局是特殊的列表&#xff0c;后台返回的数据是一维数组。而我们通常使用wx:for的方式将数据填充进去。数据格式如下&#xff1a; let dataList [a,b,c,d]d…

网格布局,实现网页图片不规则排版

1、网格布局的含义&#xff0c;及与弹性盒布局的区别 含义&#xff1a;它将网页划分成一个个网格&#xff0c;可以任意组合不同的网格&#xff0c;做出各式各样的布局&#xff1b; 区别&#xff1a;Grid布局与Flex布局有一定的相似性&#xff0c;都可以指定容器内部多个项目的…

6、微信小程序的布局

文章目录 前言一、传统基本布局1.盒子模型2.显示方式Display3.定位position4.溢出属性Overflow5.浮动Float6.对齐 二、Flex弹性布局1.基本属性2.使用示例 前言 wxss 指的是 Wei Xin Style Sheet&#xff0c;微信团队定义的一套用以实现小程序布局样式的层叠样式表&#xff0c;…

微信小程序 居中、居右、居底和横向、纵向布局,文字在图片中间,网格布局

微信小程序居中、居右、横纵布局 1、水平垂直居中&#xff08;相对父类控件&#xff09;方式一&#xff1a;水平垂直居中 父类控件&#xff1a; display: flex;align-items: center;//子控件垂直居中justify-content: center;//子控件水平居中width: 100%;height: 400px //注意…

微信小程序居中、居右、居底和横向、纵向布局,文字在图片中间,网格布局

微信小程序居中、居右、横纵布局 1、水平垂直居中&#xff08;相对父类控件&#xff09; 方式一&#xff1a;水平垂直居中 父类控件&#xff1a; display: flex;align-items: center;//子控件垂直居中justify-content: center;//子控件水平居中width: 100%;height: 400px//注…

小程序中的网格布局

在日常小程序开发中,第一个遇到的问题是页面布局的问题。设计师给的设计稿通常是一个静态的图片,我们要把图片转换成实际可以使用的布局。在电商场景中,我们经常会看到商品的两列布局,通常在CSS中,两列布局可以使用网格布局的方案解决。我们本篇就讲解一下CSS的网格布局,…

微信小程序: 使用grid进行网格布局

grid与flex一样用于页面布局。flex用于一维布局&#xff0c;grid用于二维布局。所以有时候一些网格状的布局相对于grid来说会更加方便。 注意&#xff0c;设为网格布局以后&#xff0c;容器子元素&#xff08;项目&#xff09;的float、display: inline-block、display: table-…

Spug - 轻量级自动化运维平台

Spug - 轻量级自动化运维平台 对于中小型企业而言&#xff0c;进行主机和应用的管理是比较麻烦的&#xff0c;应用部署往往需要直接连接服务器&#xff0c;再进行手动的环境配置、代码拉取、应用构建和部署发布等工作&#xff0c;容易出错&#xff0c;且耗时费力。一个好的自动…

网络自动化运维(NetDevOps)创作者推荐

前言&#xff1a; 随着NetDevOps技术登上了历史舞台&#xff0c;越来越多的从业者开始利用NetDevOps简化网络的运维&#xff0c;并进行了技术分享&#xff0c;将蛋糕越做越大。在这里&#xff0c;仅代表个人对这些无私奉献的网络、运维工程师们表达由衷的敬意。 此外&#xff…

开源自动化运维平台Spug

开源自动化运维平台Spug Spug演示环境特性安装Docker安装安装步骤1. 安装docker2. 拉取镜像3. 启动容器4. 初始化5. 访问测试6. 版本升级 Spug Spug是面向中小型企业设计的轻量级无Agent的自动化运维平台&#xff0c;整合了主机管理、主机批量执行、主机在线终端、应用发布部署…

自动化运维工具

自动化运维 通过运维工具或平台&#xff0c;实现IT基础设施及业务应用日常任务处理和运维流程的自动化&#xff0c;从而提高效率和降低风险&#xff0c;促进运维组织的成熟和各种能力的升级。 自动化运维工具 部署类&#xff1a;jenkins 环境类&#xff1a;ansible/saltStac…

关于自动化运维的那些事儿

随着近年全球运维大会的火热举办&#xff0c;自动化运维话题被推向了前所未有地热度。自动化运维并不是炒作的概念&#xff0c;而是随着信息技术发展的必要趋势。“大数据”“容器”“DevOps”“微服务”……&#xff0c;不断涌现出新的技术&#xff0c;而它们都有共同的特点&a…

部署自动化运维工具rundeck

简单介绍&#xff1a; RunDeck 是用 Java/Grails 写的开源工具&#xff0c;帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面&#xff0c;用户可以对任意数量的服务器进行操作&#xff0c;大大降低了对服务器自动化的门槛。 官网地址&#xff1a…

python自动化运维学习

1.python能做什么&#xff1f; 2.解释型与编译型语言的区别&#xff1f; 3.动态型与静态型语言的区别&#xff1f; 4.ASCLL Unicode GBK UTF-8之间的联系 ASCLL码是最初被创建出来表示字符的&#xff0c;总共255个。每个占1字节---》字符不够用---》单独的中文编码GBK&#xff…

一站式自动化运维及自动化部署平台

真正的大师,永远都怀着一颗学徒的心&#xff01; 一、项目简介 一站式自动化运维及自动化部署平台 二、实现功能 支持机器管理&#xff08;环境变量、机器秘钥、终端日志、终端会话、机器代理&#xff09; 支持调度任务 支持执行管理 支持应用管理 支持构建发布 支持用户…

IT运维之自动化运维

大家好&#xff0c;我是技福的小咖老师。 今天咱们来简单讲讲自动化运维的话题。 现在随着IT运维管理工作的复杂度和难度的大大增加&#xff0c;过去仅靠几个专门的运维人员或是“技术大拿”来包打天下已经行不通了&#xff0c;企业开始需要运用专业化、标准化和流程化的手段来…