网格布局 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 的相关文章

  • Android Spinner 项目作为网格

    默认情况下 单击微调器时 项目将显示为列表 我想更改显示为网格的项目 我怎样才能做到这一点 我只需要一些指导 谢谢 更新 这是我的代码 我的旋转下拉菜单显示为多行网格 我附上了一张它此时的样子的图片 我也无法选择值 package com
  • Bootstrap 响应式网格布局(3 列),每个网格元素下方具有折叠/隐藏的 col-12

    我试图使 100 列出现在引导网格列内的元素下方 因为用图片更容易理解 所以我想要实现的目标是 选择其中一张图像 1 到 x 时 隐藏的 div 具有不同的内容 应以完整的 12 列大小显示在图像下方 我设法做到了这一点 但是 当使用较小的
  • extjs 5网格的滚动条在边框布局面板中不起作用

    在边框布局面板中 即使网格存储足够长 导致网格溢出 网格的滚动条也无法正常工作 如果我的网格位于无边框布局面板中 则滚动条是可以的 但是当我将网格放入边框布局面板中时 要么没有滚动条 要么有无效的滚动条 what i want is to
  • 方形网格 - XML

    在我的研究中 我必须编写一个 Android 应用程序来从气象站检索天气数据 这些将显示在块中 这些块将分成 4 列和 2 行 所以我想创建一个 4 列 2 行的方形网格来提供块 有人可以提供解决方案来帮助我创建这个网格吗 有很多选择 1
  • 是否有可用的 WPF“WrapGrid”控件或创建控件的简单方法?

    本质上我想要一个wrapPanel 但我希望项目能够捕捉到网格而不是被压到左侧 这样我就可以获得一个漂亮的统一外观的网格 它会自动消耗可用空间 WrapPanel 处理调整大小部分 WPF Contrib AutoGrid 处理一个很好的自
  • 如何在填充整个单元格时左对齐Python tkinter网格列

    我正在尝试编写一个 python 类来以表格格式显示数据 我确信已经有一些课程可以做同样的事情 但是 我使用这个练习作为自学 Python 和 tkinter 的方法 在大多数情况下 我让类按照我想要的方式工作 但是我无法让标题和数据单元格
  • 具有级联 DropDownList 的 Kendo UI 网格

    我的 Razor 布局上有一个 Kendo UI 网格 它从控制器获取数据 在此网格中 我希望有一组 3 个 DropDownList 它们是 ProductGroups Products Services 我希望实现的行为是 当我向网格添
  • 网格与画布

    我正在寻找有关在 WPF 中使用 Canvas 与 Grid 面板的意见 我需要制作基本具有网格布局的经典输入表单 有些可能内部有小型数据网格 组框 但全部在网格布局中对齐 我正在纠结是否为我的所有表单使用网格面板或画布面板 网格给了我良好
  • yii2 在 gridview 中更改控制器操作

    我有 ItemController 并在 actionView 中放置了 Itempicture 的 gridview 我希望当我单击图标视图时 更新和删除 然后转到 ItempictureController 那么如何使用不同的控制器更改
  • 如何让CSS网格项占用剩余空间?

    我有一张用 CSS 网格布局构建的卡片 左侧可能有一个图像 右上角有一些文本 右下角可能有一个按钮或链接 在下面的代码中 如何使绿色区域占用尽可能多的空间 同时使蓝色区域占用尽可能少的空间 绿色应将蓝色区域尽可能向下推 https jsfi
  • 如何将wordpress循环与网格系统引导程序一起使用?

    我想显示一个带两列的条形行 其中包含wordpress循环内容 标题 以绿色块表示 每行都有白色和灰色背景的列 这些列在每行中反转 就像国际象棋检查器一样 see the image for more detail 编辑答案 我相信这就是您
  • 如何在 Flutter 中将列和行项目居中?

    我有一个小货币桌 我没有使用网格 我使用了列和行 问题是行中的项目没有显示在中心 如下面的 Excel 示例所示 我必须使用什么小部件才能使项目居中 示例代码 return new Center child new Column cross
  • Wpf GridSplitter 替换 row.height 属性上的绑定

    我在网格分割器方面遇到了困难 我已经绑定了RowDefinition Height模型的 clr 属性的依赖属性 如下所示
  • XAML 网格可见性转换?

    我有一个网格 其可见性绑定到我的视图模型中的属性 这一切都工作正常 网格正确地出现 消失 我的问题是 如何应用过渡 以便网格内容滑入 UI 边缘 而不是立即从屏幕上消失 当它可见时 它应该再次滑出
  • grid-auto-columns 在 Firefox 中不能完全工作

    我不明白为什么 DIV 3 的大小与 DIV 1 DIV 2 的大小不同 https codepen io anon pen vaVqPW https codepen io anon pen vaVqPW grid display grid
  • 为什么网格项目不居中?

    由于某种原因 两个输入范围使网格中的前两项偏离中心 我假设这是因为它们的影子 DOM 样式 事实真的是这样吗 有谁知道为什么范围使项目 A 和 B 偏离中心 这是一个代码笔 https codepen io tOkyO1 pen QOeKL
  • GridSplitter 从右侧调整大小 - 奇怪的行为

    使用 Kaxaml 从左侧调整大小可以按预期工作
  • 如何使用 MATLAB 的“等值面”函数创建三角球体

    如何创建一个三角球体 其中每个三角形的面面积相同 我想要这样的东西 http imageshack us a img198 5041 71183923 png http imageshack us a img198 5041 7118392
  • 将 Kendo Grid 数据发布到 MVC 中的控制器

    我有两节课 包含另一个类的列表的一个 public string Name get set public string Surname get set public int Age get set public List
  • 坐标算法 - 绕中心旋转

    通过查看这张图片 我想您会很好地理解我的问题 图片已删除 网址不再有效 现在返回广告 所以基本上我想要一个函数 它接受一个对象作为参数 并根据我之前添加的对象数量为该对象提供正确的坐标 假设我将所有这些对象添加到一个数组中 objectAr

随机推荐

  • 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 和 网格布局