网格布局 Grid

2023-12-17

网格布局
网格布局的API

grid 布局将网页划分成一个个网格,可以任意组合不同的网格成“行和列”,可以定义这些网格的大小、位置、层次等关系,从而实现各种各样的布局。

Grid 布局远比 Flex 布局强大。 弹性布局(flex)和 网格布局(grid)的区别

  • Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局。
  • Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。

一、基本概念

采用网格布局的区域,称为"容器"。容器内部采用网格定位的子元素,称为"项目"。项目只能是容器的顶层子元素,不包含项目的子元素。

以下面代码为例:ul 是容器,li 作为 ul 的子元素是项目。p 元素是项目的子元素而不是项目。

<ul>
  <li>1</li>
  <li>2</li>
  <li><p>3</p></li>
</ul>

二、设置 Grid 布局

首先要选定网格盒子。任何一个容器都可以指定为 Grid 布局:

div {
  display: grid;
}

行内元素也可以使用 Grid 布局:

div {
  display: inline-grid;
}

设为 Grid 布局以后,容器子元素(项目)的 “float、display: inline-block、display: table-cell、vertical-align 和 column-*” 等设置都将失效。

三、父元素设置的属性

以下 6 个属性设置在容器上:

  • grid-template-columns:定义每一列的列宽
  • grid-template-rows:定义每一行的行高
  • grid-row-gap:设置行与行的间隔(行间距)
  • grid-column-gap:设置列与列的间隔(列间距)
  • grid-gap:是 grid-column-gap 和 grid-row-gap 的合并简写形式
  • grid-template-areas:用于定义区域
  • grid-auto-flow:设置子元素的排列顺序
  • justify-items:设置单元格内容的水平位置(左中右)
  • align-items:设置单元格内容的垂直位置(上中下)
  • place-items:是 align-items 和 justify-items 的合并简写形式
  • justify-content:是整个内容区域在容器里面的水平位置(左中右)
  • align-content:是整个内容区域的垂直位置(上中下
  • place-content:是 align-content 和 justify-content 的合并简写形式
  • grid-auto-columns:设置浏览器自动创建的多余网格(留白)的列宽
  • grid-auto-rows:设置浏览器自动创建的多余网格(留白)的行高
  • grid-template:是 grid-template-columns、grid-template-rows 和 grid-template-areas 这 3 个属性的合并简写形式(为了易于读写不建议使用此合并属性)
  • grid:是 grid-template-rows、grid-template-columns、grid-template-areas、 grid-auto-rows、grid-auto-columns、grid-auto-flow 这 6 个属性的合并简写形式(为了易于读写不建议使用此合并属性)

四、自身设置的属性

  • grid-column-start:左边框所在的垂直网格线
  • grid-column-end:右边框所在的垂直网格线
  • grid-column:是 grid-column-start 和 grid-column-end 的合并简写形式
  • grid-row-start:上边框所在的水平网格线
  • grid-row-end:下边框所在的水平网格线
  • grid-row:是 grid-row-start 和 grid-row-end 的合并简写形式
  • grid-area:指定项目放在哪一个区域
  • justify-self:设置单元格内容的水平位置(左中右),跟 justify-items 属性的用法完全一致,但只作用于单个项目
  • align-self:设置单元格内容的垂直位置(上中下),跟align-items属性的用法完全一致,也是只作用于单个项目
  • place-self:是 align-self 和 justify-self 的合并简写形式

【参考文档】:
CSS Grid 网格布局教程
网格布局

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网格布局 Grid 的相关文章

  • 如何创建网格/平铺视图? [复制]

    这个问题在这里已经有答案了 例如 我有一些类 article 我想以网格视图的形式查看该类 所以我应用了这种风格 article width 100px height 100px background 333 float left marg
  • 使用 Gridsplitter 功能排列项目的项目控件

    我需要一个水平或垂直堆叠项目的布局 每个项目应由分割器分隔 以便用户可以更改大小 如 VisualStudio 中的工具箱容器 项目来自模型 因此我需要一个可以在其中设置 ItemsSource 的 ItemsControl 我的第一个想法
  • 如何在网格中显示菜单 - ExtJS 5?

    我正在尝试在网格面板中显示菜单 我有一个操作列来显示一个图标 我想应用一个效果 当鼠标悬停在该图标上时 将显示一个菜单 我如何在 extjs 5 中做到这一点 我的行动栏是这样的 xtype actioncolumn width 70 it
  • ExtJS 4 动态更改网格存储

    是否可以在 ExtJS 4 中更改网格存储 例如 我有两个模型 User Ext define User extend Ext data Model hasMany Product Product Ext define Product ex
  • C# 添加浮点数表现得很奇怪[重复]

    这个问题在这里已经有答案了 我正在尝试添加一行单元格并在网格中的新单元格中显示总计 我正在使用 DevExpress 的 gridControl 该网格有 12 列 代表一年中的月份 我想添加月份值并在第 13 列中显示总数 我的问题是 如
  • 是否可以在网格行定义上使用触发器?

    我有一个网格 其行需要根据视图模型动态调整大小 我想做类似以下的事情
  • wpf使用网格作为itemshost自动将多个项目堆叠在单个“单元格”中

    我将项目控件绑定到数据源并使用网格作为我的项目主机 我希望让这些项目将自己定位到网格中的正确单元格中 我可以做到这一点 并且也将自己堆叠起来 这样它们就不会全部彼此重叠 我不知道如何将这些项目插入到stackpanel 或网格中的其他面板
  • wpf 网格最佳实践

    我有一个包含许多标签 组合框和文本框的网格 我在每个单元格中都放置了标签和组合框 最佳实践是什么 1 将组合框和标签放入堆栈面板中 然后将其放入单元格中 2 只需将两个控件直接放入网格单元格中 两种方法的优点和缺点是什么 谢谢 将两个控件放
  • Android 应用中的 GridView 与 GridLayout

    我必须使用网格在 Android 中实现照片浏览器 所以 我想知道GridView 和 GridLayout 之间的区别 这样我就会选择正确的一个 目前我正在使用 GridView 动态显示图像 A GridView http develo
  • kendo网格列:如何在页脚模板中数据绑定点击事件?

    页脚模板中的 Kendo Grid 列数据绑定单击事件不起作用 请看例子http dojo telerik com ALAZo http dojo telerik com ALAZo 价格列模板上的点击事件工作正常 但页脚模板上的点击事件却
  • 如何以百分比形式设置 Ext.grid.ColumnModel 中的宽度?

    如何设置宽度Ext grid ColumnModel以百分比计算 使用总共 100 的列宽数字并使用 ForceFit 配置视图 例如 var grid new Ext grid GridPanel cm new Ext grid Colu
  • 如何使用网格或其他控件在 WPF 中布局表单以实现可维护性[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个 WPF 表单 我想在其上放置一个标准表单 每个表单元素都有一个标签 然后是一个控件 相当标准的东西 如果我使用包裹面板 它可
  • 如何将wordpress循环与网格系统引导程序一起使用?

    我想显示一个带两列的条形行 其中包含wordpress循环内容 标题 以绿色块表示 每行都有白色和灰色背景的列 这些列在每行中反转 就像国际象棋检查器一样 see the image for more detail 编辑答案 我相信这就是您
  • JqG​​rid 单元格中的选择框

    我试图让选择框位于特定的单元格中 我的复选框显示得很好 但选择框没有显示 list5 jqGrid datatype local width 100 height 100 colNames Universe1 Connect String1
  • Kendo Grid - 它自己的加载指示器

    Kendo grid在网格加载 分页 排序时自动提供自己的Loading指示器 它运行良好 但我不希望显示 隐藏这个内置加载指示器 如何禁用此功能 请建议我 谢谢 维诺斯 很简单 用CSS隐藏就可以了 您的选择器需要比内置 Kendo 类更
  • ColumnDefinition MinWidth 无法正常工作

    我在 WPF xaml 中使用网格 并且在 ColumnDefinition 中使用 MinWidth 属性时出现一些奇怪的效果 例如 当我使用 9 ColumnDefinition 并且每个 ColumnDefinition 都有 Wid
  • 使网格正确对齐

    在我的应用程序中 我在列表框中显示有关用户的一些信息 我已经得到了我想要的大部分东西 但布局有点困扰我 它由网格制成 因此可以重新调整大小并适合纵向 横向模式 However I cannot get the layout to fix i
  • 创建多彩板

    我要创建一个多彩板 从第一个方块开始为黑色 然后是蓝色 红色和黄色 这些方块对角线填充 并且没有空的彩色方块 我知道我的算法是错误的 但我不知道如何修复它 目前 我的代码打印如下 import javax swing JFrame impo
  • Extjs - 如何在网格列中显示组合框

    我有一个网格面板 包括日期和组合列jsfiddle http jsfiddle net YjYqX 但我不想点击显示我的组合 我想在不点击的情况下显示我的组合 而不是像隐藏在单元格内一样 日期列也一样 我认为改变clicksToEdit 0
  • GXT - 根据行中的一个单元格对整个网格行进行着色

    我根据单元格的值对一列进行着色 但我想对 gxt 网格中的整行 意味着单元格包含的行 进行着色帮助我 这是我为单元格着色的代码 我想为行而不是单元格着色 Coloring Area GridCellRenderer

随机推荐

  • Python获取去哪儿旅游数据并作可视化攻略

    嗨喽 大家好呀 这里是爱看美女的茜茜呐 开发环境 版 本 python 3 8 编辑器 pycharm 第三方库 requests gt gt gt pip install requests parsel gt gt gt pip inst
  • Java基础语法..

    1 Java程序和Java项目 一个Java程序是由类 函数 语句组成的 其中类包含函数 函数包含语句 一个Java项目允许存在多个main函数 其实函数就是方法 如果你运行的对象是Java项目的话 那么他只能选择项目中的其中一个main函
  • 微服务架构企业级精品项目——天机学堂

    1 学习背景 各位同学大家好 经过前面的学习我们已经掌握了 微服务架构 的核心技术栈 相信大家也体会到了微服务架构相对于项目一的单体架构要复杂很多 你的脑袋里也会有很多的问号 微服务架构该如何拆分 到了公司中我需要自己搭建微服务项目吗 如果
  • 单片机毕设分享 基于单片机的风速测量系统 - 物联网 嵌入式 stm32 arduino

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 风速计简介 Adafruit风速计传感器 5 软件说明 Arduino风速计的源代码 程序
  • 什么是概率匹配

    概率匹配是一种在信息论和统计学中常用的方法 用于将一个随机事件的概率分布与另一个概率分布进行匹配或逼近 它在数据处理 编码 压缩和模型选择等领域具有重要的应用 为我们理解和处理复杂的概率分布提供了一种有效的工具 首先 让我们来了解概率匹配的
  • 【故障识别】基于遗传算法优化长短期记忆神经网络GA-LSTM 实现数据分类预测附matlab实现

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 代码获取 论文复现及科研仿真合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信
  • 【MySQL内置函数】

    目录 前言 一 日期函数 获取日期 获取时间 获取时间戳 在日期上增加时间 在日期上减去时间
  • 【工具栏】(idea)背景图像

    下载之后
  • stm32项目分享 - 单片机森林火灾监控防护预警系统 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 SIM800L模块的工作原理 基于物联网的森林火灾探测系统框图 Arduino火灾检测系统的电路图 5 软件说明
  • “宠物之家”宠物救助系统的设计与实现 毕业设计源码40439

    赠送源码 毕业设计 SSM 宠物之家 宠物救助系统 https www bilibili com video BV1ag4y1f7rg vd source 72970c26ba7734ebd1a34aa537ef5301 SSM 宠物之家
  • 自信息量和一阶熵

    信息论中 自信息量和一阶熵是用来度量信息的重要概念 它们提供了一种方式来理解和量化信息的不确定性和平均量 对于解决信息传输 编码和存储等问题非常有用 首先 让我们来了解一下自信息量 自信息量是用来度量一个事件的信息量或不确定性的大小 假设有
  • 学 Linux 必会的 ARM 汇编指令

    学习 Linux 系统启动流程 必须熟悉几个汇编指令 总结给大家 这里不是最全的 只列出一些最常用的汇编指令 一 数据处理指令 1 数据传送指令 MOV指令 把一个寄存器的值 立即数 赋给另一个寄存器 或者将一个常量赋给寄存器 MOV指令的
  • lv12 uboot源码配置编译 8

    目录 1 uboot源码获取 2 uboot特定 3 uboot源码结构 3 1 平台相关代码 3 1 1 arch 3 1 2 board 3 2 平台无关代码 3 2 1 common下放的都是uboot的命令 3 3 配置文件 帮助文
  • DS八大排序之冒泡排序和快速排序

    前言 前两期我们已经对 插入排序 直接插入排序和希尔排序 和 选择排序 直接选择排序和堆排序 进行了详细的介绍 这一期我们再来详细介绍一组排序 交换排序 即耳熟能详的冒泡排序和赫赫有名的快速排序 本期内容介绍 冒泡排序 快速排序 Hoare
  • prometheus监控交换机

    本例以监控华为交换机为例 prometheus环境搭建见前面的文章 1 环境准备 yum install y gcc gcc g make net snmp net snmp utils net snmp libs net snmp dev
  • Java前言..

    1 软件开发的分类 软件开发我们可以将其分成三类 移动开发 Android iOS 前端开发 HTML CSS JavaScript 后台开发 Java Python C 2 软件开发的分工 其中移动开发负责开发一些移动设备上的应用 前端开
  • 计算机网络---vlan、单臂路由、静态路由综合案例配置(命令版)

    基础命令 1 检查设备是否连通 ping lt 目标主机 gt 例 ping 192 168 1 1 拓展 ping t lt 目标主机 gt 将不断发送ping请求 直至手动中断该命令 ctrl c ping c 4 lt 目标主机 gt
  • 牛客小白月赛83

    A 小天的金银铜铁 牛客小白月赛83 nowcoder com AC代码 include
  • C语言之变量的存储方式和生存周期

    一 变量的存储方式 C语言变量的存储有两种方式 静态存储方式和动态存储方式 相应的生产期也有两种 静态生存期和自动生存期 静态存储方式 在程序运行前为变量内存分配内存 在程序结束后回收变量的内存 静态生存期 动态存储方式 在程序运行过程中
  • 网格布局 Grid

    网格布局 网格布局的API grid 布局将网页划分成一个个网格 可以任意组合不同的网格成 行和列 可以定义这些网格的大小 位置 层次等关系 从而实现各种各样的布局 Grid 布局远比 Flex 布局强大 弹性布局 flex 和 网格布局