display:grid网格布局属性说明

news2025/5/17 16:41:57

网格父级 :display:grid(块级网格)/  inline-grid(行内网格)

注意:当设置网格布局,column、float、clear、vertical-align的属性是无效的。   

HTML:
<ul class="ls02 f18 mt50 sysmt30">
<li><img src="图片"><span>文字摘要文字</span></a></li>
<li><img src="图片"><span>文字摘要文字</span></a></li>
<li><img src="图片"><span>文字摘要文字</span></a></li>
<li><img src="图片"><span>文字摘要文字</span></a></li>
<li><img src="图片"><span>文字摘要文字</span></a></li>
</ul>


CSS:
<style>
.ls02{display:grid;grid-template-columns:580px 285px 285px;grid-template-rows:160px 160px;justify-content:space-between;gap:20px;}
.ls02 li{position:relative;overflow:hidden;}
.ls02 li:first-child{grid-row:span 2;}/*单独设置第一个元素跨两行*/
.ls02 li span{display:block;position:absolute;left:0;bottom:0;width:100%;background:rgba(0,0,0,0.6);color:#fff;white-space:nowrap;text-align:center;overflow:hidden;text-overflow:ellipsis;padding:10px;box-sizing:border-box;}
</style>

HTML:
<ul class="ls03">
<li><img src="图片"><span>文字摘要文字</span></a></li>
<li><img src="图片"><span>文字摘要文字</span></a></li>
<li><img src="图片"><span>文字摘要文字</span></a></li>
<li><img src="图片"><span>文字摘要文字</span></a></li>
<li><img src="图片"><span>文字摘要文字</span></a></li>
</ul>


CSS:
<style>
.ls03{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(auto-fill,160px);gap:20px;}/*设置列4平分且行高重复160px*/
.ls03 li{overflow:hidden;position:relative;}
.ls03 li span{display:block;position:absolute;left:0;bottom:0;width:100%;background:rgba(0,0,0,0.6);color:#fff;white-space:nowrap;text-align:center;overflow:hidden;text-overflow:ellipsis;padding:10px;box-sizing:border-box;}
</style>

网格父级grid常用属性:

grid-template-columns: 定义每一列的列宽。

grid-template-rows:定义每一行的行高。

column-gap:定义列与列之间的列间距,原属性名为:grid-column-gap。

row-gap:定义行与行之间的行间距,原属性名为:grid-row-gap。

gap:定义列间距和行间距,是column-gap与row-gap的简写形式,原属性名为:grid-gap。

grid-template-areas:定义网格区域名称。

grid-auto-flow:定义单元格排列顺序。

justify-items:定义单元格中内容的水平位置(左中右)。

align-items:定义单元格中内容的垂直位置(上中下)。

place-items: 定义单元格中内容的水平位置和垂直位置,是justify-items和align-items的简写形式。

justify-content:定义容器中整体内容的水平位置(左中右)。

align-content:定义容器中整体内容的垂直位置(上中下)。

place-content:定义容器中整体内容的水平位置和垂直位置,是justify-content和align-content的简写形式。

grid-auto-columns:定义容器中多余网格的列宽。

grid-auto-rows:定义容器中多余网格的行高。

grid-template-areas:通过字符串语法定义网格的区域布局。

grid-template:该属性是 grid-template-columns、grid-template-rows、grid-template-areas 这三个属性的简写形式。

grid:该属性是grid-template-rows、grid-template-columns、grid-template-areas、 grid-auto-rows、grid-auto-columns、grid-auto-flow 这六个属性的简写形式。 

HTML结构:

<ul class="grid-container">
<li>第一个网格内容</li>
<li>第二个网格内容</li>
<li>第三个网格内容</li>
<li>第四个网格内容</li>
<li>第五个网格内容</li>
<li>第六个网格内容</li>
<li>第七个网格内容</li>
<li>第八个网格内容</li>
</ul>

grid-template-columns:

.grid-container{
display:grid;/*设置grid布局*/
gap:10px 20px;/*行间距均为10 列间距为20*/

/*固定宽度列*/
grid-template-columns:100px 200px 150px; /* 三列,宽度分别为 100px、200px、150px */

/*使用 fr 单位按比例分配剩余空间*/
grid-template-columns:1fr 2fr 1fr; /* 三列,中间列宽度是两侧的两倍 */

/*混合固定和灵活宽度*/
grid-template-columns:200px 1fr 1fr; /* 第一列 200px,剩余空间由后两列平分 */

/*重复语法 repeat()*/
grid-template-columns:repeat(4,1fr); /* 四列,每列宽度相等 */
grid-template-columns:repeat(3,100px); /* 三列,每列 100px 宽 */

/*自适应列数 auto-fill/auto-fit*/
grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); /* 自动填充列,每列至少 200px,最多平均分配 */
grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); /* 类似 auto-fill,但会收缩空白列 */

/*自动宽度 auto*/
grid-template-columns:auto 1fr auto; /* 两侧列宽由内容决定,中间列填充剩余空间 */

/* 最小 / 最大宽度约束 minmax()*/
grid-template-columns:minmax(150px,300px) 1fr; /* 第一列宽度在 150px~300px 之间,第二列填充剩余空间 */


/*命名网格线*/
grid-template-columns:[col1-start] 100px [col1-end col2-start] 200px [col2-end];

/*混合多种单位*/
grid-template-columns:150px minmax(200px, 1fr) auto; /* 固定宽度 + 弹性宽度 + 内容自适应 */

}
.grid-container li{background:#ccc;}

gird-template-rows:

.grid-container{
display:grid;/*设置grid布局*/
gap:10px 20px;/*行间距均为10 列间距为20*/

/*固定高度行*/
grid-template-rows: 100px 200px; /* 两行,高度分别为 100px 和 200px */

/*比例分配行高*/
grid-template-rows: 1fr 3fr; /* 两行,第二行高度是第一行的三倍 */

/*混合固定和灵活高度*/
grid-template-rows: 80px 1fr; /* 第一行 80px,剩余空间由第二行填充 */

/*重复语法 repeat()*/
grid-template-rows: repeat(3, 100px); /* 三行,每行 100px 高 */
grid-template-rows: repeat(2, 1fr); /* 两行,高度相等 */

/*自适应行高 auto*/
grid-template-rows: auto 1fr; /* 第一行高度由内容决定,第二行填充剩余空间 */

/*最小 / 最大高度约束 minmax()*/
grid-template-rows: minmax(100px, auto); /* 行高至少 100px,最大由内容决定 */

/*自动填充行 auto-fill/auto-fit*/
grid-template-rows: repeat(auto-fill, minmax(100px, 1fr)); /* 自动创建行,每行至少 100px */

/*命名网格线*/
grid-template-rows: [header-start] 80px [header-end content-start] 1fr [content-end];

/*多行模板*/
grid-template-rows: 50px auto 50px; /* 顶部栏、内容区、底部栏的典型布局 */

/*隐式行高(配合 grid-auto-rows)当内容超出显式定义的行时,使用 grid-auto-rows 定义隐式创建的行高*/
grid-auto-rows: 120px; /* 隐式创建的行高为 120px */

}
.grid-container li{background:#ccc;}

gap(row-gap行间距 / column-gap列间距):

/*可用单位px、em/rem、%、vw/vh等*/
.grid-container{
display:grid;/*设置grid布局*/
gap:10px 20px;/*行间距均为10 列间距为20*/

column-gap:20px; /* 列间距 20px */
row-gap:10px; /* 行间距 10px */
}

place-items(align-items垂直 / justify-items水平):

.grid-container{
display:grid;/*设置grid布局*/

/*基础对齐值*/
place-items:start;   /* 元素对齐到容器的起始位置 */
place-items:end;     /* 元素对齐到容器的结束位置 */
place-items:center;   /* 元素在容器中居中对齐 */
place-items:stretch;  /* 元素拉伸以填充容器空间(默认值) */

align-items:start;    /* 项目沿行的起始边缘对齐(顶部)*/
align-items:end;      /* 项目沿行的结束边缘对齐(底部)*/
align-items:center;   /* 项目在行中居中对齐 */
align-items:stretch;  /* 项目拉伸以填充行的高度(默认值) */

justify-items:start;    /* 项目左对齐(默认值)等同于 justify-items:left; */
justify-items:end;      /* 项目右对齐 等同于 justify-items:right;*/
justify-items:center;   /* 项目居中对齐 */
justify-items:stretch;  /* 项目拉伸以填充单元格宽度 */
justify-items:baseline;  /* 项目按文本基线对齐 */


/*安全对齐值*/
place-items:safe center;    /* 确保内容不溢出容器,必要时回退到 start */
place-items:unsafe center;  /* 强制居中,可能导致内容溢出 */

align-items:safe center; /* 居中对齐,但如果内容溢出,会自动回退到 start 以防止内容被裁剪 */
align-items:unsafe center; /* 强制居中对齐,即使内容可能溢出容器 */

justify-items:safe center;    /* 居中对齐,但防止内容溢出 */
justify-items:unsafe center;  /* 强制居中,可能导致内容溢出容器 */

/*分别设置垂直和水平对齐*/
place-items:center start;  /*align-items和justify-items综合写法 垂直居中,水平居左 */
place-items:end stretch;   /* 垂直居底,水平拉伸 */

}

place-content(justify-content水平 / align-content垂直):

.grid-container{
display:grid;/*设置grid布局*/

/*水平方向对齐*/
justify-content:start;      /* 左对齐(默认值) */
justify-content:end;        /* 右对齐 */
justify-content:center;     /* 居中对齐 */
justify-content:space-between; /* 项目间均匀分布,首尾贴边 */
justify-content:space-around;  /* 项目两侧间隔相等(首尾间距为中间的一半) */
justify-content:space-evenly;  /* 所有间隔完全相等 */
justify-content:stretch;      /* 拉伸以填充容器宽度(需显式设置列宽) */

/*垂直方向对齐*/
align-content:start;      /* 顶部对齐(默认值) */
align-content:end;        /* 底部对齐 */
align-content:center;     /* 居中对齐 */
align-content:space-between; /* 项目间均匀分布,首尾贴边 */
align-content:space-around;  /* 项目两侧间隔相等(首尾间距为中间的一半) */
align-content:space-evenly;  /* 所有间隔完全相等 */
align-content:stretch;      /* 拉伸以填充容器高度(需显式设置行高) */

/*place-content 简写属性*/
place-content:center;      /* 等价于 align-content:center; justify-content:center; */
place-content:start end;   /* 垂直顶部,水平右对齐 */
place-content:space-around stretch; /* 垂直方向间隔相等,水平方向拉伸 */

}

grid-auto-columns:

/*可用单位px、em/rem、%、vw/vh等*/
.grid-container{
display:grid;/*设置grid布局*/

/*
grid-auto-columns 属性用于定义隐式创建的列轨道的尺寸。
当你放置的项目超出了显式定义的列范围时,浏览器会自动创建隐式列,
此时该属性控制这些列的宽度。*/

grid-auto-columns:150px;  /* 隐式列宽度固定为 150px */
grid-auto-columns:1fr;  /* 隐式列宽度平均分配剩余空间 */
grid-auto-columns:auto;  /* 隐式列宽度由内容决定 */
grid-auto-columns:minmax(100px, 200px);  /* 列宽至少 100px,最大 200px */
grid-auto-columns:minmax(100px, auto);   /* 列宽至少 100px,最大由内容决定 */
grid-auto-columns:100px 200px;  /* 第一个隐式列 100px,第二个 200px,循环重复 */

}

grid-template(grid-template-columns列宽 / grid-template-rows行高 / grid-template-areas区域):

.grid-container{
display:grid;/*设置grid布局*/

/*grid-template-columns 定义网格的列数量和宽度 */
grid-template-columns:100px 200px 150px;  /* 三列,宽度分别为 100px、200px、150px */
grid-template-columns:1fr 2fr 1fr;        /* 三列,按 1:2:1 比例分配剩余空间 */
grid-template-columns:repeat(4, 1fr);     /* 四列,每列宽度相等 */
grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));  /* 自动填充列,每列至少 200px */
grid-template-columns:[col1-start] 100px [col1-end col2-start] 200px;  /* 命名列线 */

/*grid-template-rows 定义网格的行数量和高度 */
grid-template-rows:80px 1fr 100px;       /* 三行,中间行弹性填充 */
grid-template-rows:repeat(3, 100px);     /* 三行,每行 100px 高 */
grid-template-rows:minmax(100px, auto);  /* 行高至少 100px,最大由内容决定 */
grid-template-rows:[header-start] 80px [header-end content-start] 1fr;  /* 命名行线 */

/*grid-template-areas 通过字符串定义网格的区域布局 */
grid-template-areas:
  "header header header"   /* 第一行:header 区域跨越三列 */
  "sidebar main main"     /* 第二行:sidebar 占一列,main 占两列 */
  "footer footer footer"; /* 第三行:footer 区域跨越三列 */

/* 将项目放入命名区域
.header { grid-area:header; }
.sidebar { grid-area:sidebar; }
.main { grid-area:main; }
.footer { grid-area:footer; }
.:表示空单元格
连续相同名称:表示区域跨越多个单元格
*/

/* grid-template 同时定义 grid-template-rows、grid-template-columns 和 grid-template-areas */
/* 基本语法:[行定义] / [列定义] */
grid-template:100px 1fr / 200px 1fr;  /* 两行两列,无命名区域 */

/* 带命名区域的复杂语法 */
grid-template:
  [header-start] "header header header" 80px [header-end]
  [content-start] "sidebar main main" 1fr [content-end]
  [footer-start] "footer footer footer" 60px [footer-end]
  / 200px 1fr 1fr;  /* 列定义在最后 */

}

grid:

grid是一个简写属性,用于同时设置 grid-template-rows, grid-template-columns, grid-template-areas, 以及隐式网格的 grid-auto-rows, grid-auto-columns, 和 grid-auto-flow。

.grid-container{
display:grid;/*设置grid布局*/

grid:none; /* 默认值 */

/* 显式网格:[行定义] / [列定义] */
grid:100px 1fr / 200px 1fr;

/* 带命名区域的显式网格 */
grid:
  "header header" 80px
  "sidebar main" 1fr
  "footer footer" 60px
  / 200px 1fr;

/* 显式 + 隐式网格:[行定义] / [列定义] [自动流] [自动行/列大小] */
grid:100px 1fr / 200px 1fr auto-flow dense 150px;

/* 同时继承行和列 */
grid:subgrid / subgrid;

/* 基于内容自动调整尺寸 */
grid:min-content max-content / auto 1fr;

/* 自动填充的网格 */
grid:auto-flow dense 100px / repeat(auto-fill, minmax(150px, 1fr));
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2377823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

排序算法之高效排序:快速排序,归并排序,堆排序详解

排序算法之高效排序&#xff1a;快速排序、归并排序、堆排序详解 前言一、快速排序&#xff08;Quick Sort&#xff09;1.1 算法原理1.2 代码实现&#xff08;Python&#xff09;1.3 性能分析 二、归并排序&#xff08;Merge Sort&#xff09;2.1 算法原理2.2 代码实现&#xf…

Java 并发编程归纳总结(可重入锁 | JMM | synchronized 实现原理)

1、锁的可重入 一个不可重入的锁&#xff0c;抢占该锁的方法递归调用自己&#xff0c;或者两个持有该锁的方法之间发生调用&#xff0c;都会发生死锁。以之前实现的显式独占锁为例&#xff0c;在递归调用时会发生死锁&#xff1a; public class MyLock implements Lock {/* 仅…

基于对抗性后训练的快速文本到音频生成:stable-audio-open-small 模型论文速读

Fast Text-to-Audio Generation with Adversarial Post-Training 论文解析 一、引言与背景 文本到音频系统的局限性&#xff1a;当前文本到音频生成系统性能虽佳&#xff0c;但推理速度慢&#xff08;需数秒至数分钟&#xff09;&#xff0c;限制了其在创意领域的应用。 研究…

ADC深入——SNR、SFDR、ENOB等概念

目录 SNR&#xff08;Spurious‑Free Dynamic Range 信噪比&#xff09; ENOB&#xff08;Effective Number Of Bits 有效位&#xff09; SFDR&#xff08;Spurious‑Free Dynamic Range&#xff09; 感觉SNR和SFDR差不多&#xff1f;看看下图 输入带宽 混叠 带通采样/欠…

硬件厂商的MIB文档详解 | 如何查询OID? | MIB Browser实战指南-优雅草卓伊凡

硬件厂商的MIB文档详解 | 如何查询OID? | MIB Browser实战指南-优雅草卓伊凡 一、硬件厂商的MIB文档是什么&#xff1f; 1. MIB的本质&#xff1a;设备的”数据字典” MIB&#xff08;Management Information Base&#xff09; 是SNMP协议的核心数据库&#xff0c;定义了设备…

阿里开源通义万相 Wan2.1-VACE,开启视频创作新时代

0.前言 阿里巴巴于2025年5月14日正式开源了其最新的AI视频生成与编辑模型——通义万相Wan2.1-VACE。这一模型是业界功能最全面的视频生成与编辑工具&#xff0c;能够同时支持多种视频生成和编辑任务&#xff0c;包括文生视频、图像参考视频生成、视频重绘、局部编辑、背景延展…

小学数学题批量生成及检查工具

软件介绍 今天给大家介绍一款近期发现的小工具&#xff0c;它非常实用。 软件特点与出题功能 这款软件体积小巧&#xff0c;不足两兆&#xff0c;具备强大的功能&#xff0c;能够轻松实现批量出题。使用时&#xff0c;只需打开软件&#xff0c;输入最大数和最小数&#xff0c…

5.13/14 linux安装centos及一些操作命令随记

一、环境准备 VMware Workstation版本选择建议 CentOS 7 ISO镜像下载指引 虚拟机硬件配置建议&#xff08;内存/处理器/磁盘空间&#xff09; 二、系统基础命令 一、环境准备 1.VMware Workstation版本选择建议 版本选择依据 选择VMware Workstation的版本时&#xff0c…

Baklib加速企业AI数据智理转型

Baklib智理AI数据资产 在AI技术深度渗透业务场景的背景下&#xff0c;Baklib通过构建企业级知识中台架构&#xff0c;重塑了数据资产的治理范式。该平台采用智能分类引擎与语义分析模型&#xff0c;将分散在邮件、文档、数据库中的非结构化数据转化为标准化的知识单元&#xf…

基于协同过滤的文学推荐系统设计【源码+文档+部署】

基于协同过滤的文学推荐系统设计 摘要 随着信息技术的飞速发展和文学阅读需求的日益多样化&#xff0c;构建一个高效、精准的文学推荐系统变得尤为重要。本文采用Spring Boot框架&#xff0c;结合协同过滤算法&#xff0c;设计并实现了一个基于用户借阅行为和社交论坛互动的文学…

数据结构与算法——单链表(续)

单链表&#xff08;续&#xff09; 查找在指定位置之前插入结点在指定位置之后插入结点删除pos位置的结点删除pos位置之后的结点销毁 查找 遍历&#xff1a;pcur指向头结点&#xff0c;循环&#xff0c;当pucr不为空进入循环&#xff0c;pucr里面指向的数据为要查找的值的时候…

全面且深度学习c++类和对象(上)

文章目录 过程和对象类的引入&#xff0c;类的定义类的访问限定符及封装类的访问限定符封装 类的实例化类大小内存对齐规则&#xff1a; this指针this特性 过程和对象 C语言面向过程设计&#xff0c;c面向对象设计&#xff0c; 举例&#xff1a;洗衣服 C语言&#xff1a;放衣服…

开源情报如何成为信息攻防的关键资源

相比于传统情报&#xff0c;开源情报具有情报数量大、情报质量好、情报成本低、情报可用性强等优势。这是开源情报能够成为信息攻防关键资源的主要原因。 海量信息让开源情报具有更大潜力。一是开源情报体量巨大。信息化时代是信息爆炸的时代&#xff0c;网络上发布的各种信息…

【风控】用户特征画像体系

一、体系架构概述 1.1 核心价值定位 风控特征画像体系是通过多维度数据融合分析&#xff0c;构建客户风险全景视图的智能化工具。其核心价值体现在&#xff1a; 全周期覆盖&#xff1a;贯穿客户生命周期的营销、贷前、贷中、贷后四大场景立体化刻画&#xff1a;整合基础数据…

Unity:场景管理系统 —— SceneManagement 模块

目录 &#x1f3ac; 什么是 Scene&#xff08;场景&#xff09;&#xff1f; Unity 项目中的 Scene 通常负责什么&#xff1f; &#x1f30d; 一个 Scene 包含哪些元素&#xff1f; Scene 的切换与管理 &#x1f4c1; 如何创建与管理 Scenes&#xff1f; 什么是Scene Man…

SZU 编译原理

总结自 深圳大学《编译原理》课程所学相关知识。 文章目录 文法语法分析自顶向下的语法分析递归下降分析LL(1) 预测分析法FIRST 集合FOLLOW 集合 文法 乔姆斯基形式语言理论&#xff1a; 表达能力&#xff1a;0型文法 > 1型文法 > 2型文法 > 3型文法。 0 型文法&am…

【程序员AI入门:模型】19.开源模型工程化全攻略:从选型部署到高效集成,LangChain与One-API双剑合璧

一、模型选型与验证&#xff1a;精准匹配业务需求 &#xff08;一&#xff09;多维度评估体系 通过量化指标权重实现科学选型&#xff0c;示例代码计算模型综合得分&#xff1a; # 评估指标权重与模型得分 requirements {"accuracy": 0.4, "latency": …

ARM Cortex-M3内核详解

目录 一、ARM Cortex-M3内核基本介绍 &#xff08;一&#xff09;基本介绍 &#xff08;二&#xff09;主要组成部分 &#xff08;三&#xff09;调试系统 二、ARM Cortex-M3内核的内核架构 三、ARM Cortex-M3内核的寄存器 四、ARM Cortex-M3内核的存储结构 五、ARM Co…

ThinkStation图形工作站进入BIOS方法

首先视频线需要接在独立显卡上&#xff0c;重新开机&#xff0c;持续按F1&#xff0c;或者显示器出来lenovo的logo的时候按F1&#xff0c;这样就进到bios里了。联*想*坑&#xff0c;戴尔贵。靠。

go 集成base64Captcha 支持多种验证码

base64Captcha 是一个基于 Go 语言开发的验证码生成库&#xff0c;主要用于在 Web 应用中集成验证码功能&#xff0c;以增强系统的安全性。以下是其主要特点和简介&#xff1a; base64Captcha主要功能 验证码类型丰富&#xff1a;支持生成多种类型的验证码&#xff0c;包括纯…