CSS Grid布局是一种强大的二维布局系统,可以将页面划分为行和列,精确控制元素的位置和大小。以下是其完整功能介绍和示例演示:

基本概念
  • 网格容器(Grid Container):应用display: grid的元素。
  • 网格项(Grid Item):容器的直接子元素。
  • 网格线(Grid Line):划分行和列的分界线。
  • 网格轨道(Grid Track):两条相邻网格线之间的空间。
  • 网格单元格(Grid Cell):行和列交叉形成的最小单位。
  • 网格区域(Grid Area):由多个单元格组成的矩形区域。
容器属性
  1. 定义网格结构
    • grid-template-columnsgrid-template-rows:指定列和行的大小。
      .container {display: grid;grid-template-columns: 100px 200px 100px; /* 三列,宽度分别为100px、200px、100px */grid-template-rows: 100px 200px; /* 两行,高度分别为100px、200px */
      }
      
    • repeat()函数:简化重复的轨道定义。
      grid-template-columns: repeat(3, 1fr); /* 三列等宽,占据剩余空间 */
      
    • fr单位:表示可用空间的比例。
    • minmax()函数:定义轨道的最小和最大尺寸。
      grid-template-columns: 1fr minmax(200px, 1fr) 1fr; /* 中间列最小200px,最大占据剩余空间 */
      
    • auto关键字:根据内容自动调整大小。
  2. 网格间距
    • gap(或row-gapcolumn-gap):设置行和列之间的间距。
      .container {gap: 20px; /* 行间距和列间距均为20px */
      }
      
  3. 定位网格项
    • grid-area:命名区域,简化定位。
      .container {grid-template-areas:"header header header""sidebar content content""footer footer footer";
      }
      .header { grid-area: header; }
      .sidebar { grid-area: sidebar; }
      .content { grid-area: content; }
      .footer { grid-area: footer; }
      
    • grid-column-startgrid-column-endgrid-row-startgrid-row-end:精确控制项的位置和跨度。
      .item {grid-column-start: 1; /* 从第1列开始 */grid-column-end: 3; /* 到第3列结束 */grid-row-start: 2; /* 从第2行开始 */grid-row-end: 3; /* 到第3行结束 */
      }
      /* 简写形式 */
      .item {grid-column: 1 / 3; /* 从第1列到第3列 */grid-row: 2 / 3; /* 从第2行到第3行 */
      }
      
  4. 命名网格线
    • 使用方括号[]为网格线命名,方便定位。
      .container {grid-template-columns: [left] 100px [center] 200px [right];grid-template-rows: [top] 100px [middle] 200px [bottom];
      }
      .item {grid-column: left / center; /* 从left线到center线 */grid-row: top / middle; /* 从top线到middle线 */
      }
      
项目属性
  • justify-selfalign-self:控制单个项在单元格内的对齐方式。
    .item {justify-self: center; /* 水平居中对齐 */align-self: end; /* 垂直底部对齐 */
    }
    
示例演示
  1. 简单网格布局

    <div class="container"><div class="item">1</div><div class="item">2</div><div class="item">3</div><div class="item">4</div><div class="item">5</div><div class="item">6</div>
    </div>
    
    .container {display: grid;grid-template-columns: repeat(3, 1fr);grid-template-rows: 100px 100px;gap: 10px;
    }
    .item {background-color: lightgray;padding: 10px;text-align: center;
    }
    

    效果:六项均匀分布在3列2行的网格中。

  2. 响应式布局

    .container {display: grid;grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));gap: 20px;
    }
    

    效果:根据容器宽度自动调整列数,每列最小200px,最大占据剩余空间。

  3. 复杂布局

    <div class="container"><div class="header">头部</div><div class="sidebar">侧边栏</div><div class="content">内容</div><div class="footer">底部</div>
    </div>
    
    .container {display: grid;grid-template-areas:"header header header""sidebar content content""footer footer footer";grid-template-columns: 200px 1fr 200px;grid-template-rows: auto 1fr auto;gap: 10px;
    }
    .header { grid-area: header; }
    .sidebar { grid-area: sidebar; }
    .content { grid-area: content; }
    .footer { grid-area: footer; }
    

    效果:实现经典的三栏布局,头部和底部通栏,侧边栏和内容区域自适应高度。

通过以上介绍和示例,可以看到CSS Grid布局的强大功能和灵活性,能够轻松实现各种复杂的页面布局。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习C++、QT---21(QT中QFile库的QFile读取文件、写入文件的讲解)

每日一言把大目标拆成小步&#xff0c;每天前进一点点&#xff0c;终会抵达终点。QFile读取文件我们记事本要进行读取文件、写入文件、等等的操作&#xff0c;那么这个时候我们的QT有一个QT类叫做QFile这个类的话是专门对于文件操作的&#xff0c;所以我们来学习我们在QT的帮助…

AD736ARZ-R7精密真有效值转换器 高精度测量的首选方案

AD736ARZ-R7精密转换器产品概述AD736ARZ-R7是ADI&#xff08;Analog Devices Inc.&#xff09;推出的一款低功耗、高精度的真有效值&#xff08;RMS&#xff09;转直流&#xff08;DC&#xff09;转换器&#xff0c;采用SOIC-8封装&#xff0c;适用于需要精确测量交流或复杂波形…

【web应用】若依框架前端报表制作与导出全攻略(ECharts + html2canvas + jsPDF)

文章目录前言一、ECharts准备工作1. 检查ECharts安装2. 导入ECharts3. 创建饼图组件4. 模板部分二、报表导出功能实现1. 安装依赖2. 导入依赖3. 完整导出函数实现4. 样式优化三、完整组件实现四、常见问题与解决方案1. 图表截图不完整或模糊2. 图表背景透明3. 导出PDF中文乱码4…

vue3+express联调接口时报“\“username\“ is required“问题

我用node .js的express框架写的登录接口&#xff0c;发现postman可以调通&#xff0c;但是vue3前端报错vue3我发现是我后端node.js的app.js入口文件中配置的解析前端参数的解析中间件和前端请求头中的Content-Type配置不一致的原因 解决方案 因为我后端配置解析表单数据的中间件…

《月亮与六便士》:天才的背叛与凡人救赎的残酷辩证法

当满地六便士成了庸人的火葬场​​毛姆笔下的斯特里克兰德&#xff0c;是一把捅穿中产幻梦的利刃。这个抛妻弃子、背叛友人的证券经纪人&#xff0c;在伦敦客厅的茶香与银勺碰撞声中&#xff0c;突然听见了远方的惊雷——“我必须画画”。如书中所言&#xff1a;​​“在满地都…

vue2往vue3升级需要注意的点(个人建议非必要别直接升级)

将 Vue 2 项目升级到 Vue 3 的过程中&#xff0c;需要重点关注以下几个难点和关键点&#xff1a; 建议小项目直接用vue3重写更快&#xff0c;bug更少 文章目录1. **Composition API 的学习与应用**2. **全局 API 的变更**3. **模板语法的兼容性变化**4. **组件选项和生命周期的…

聚焦数据资源建设与应用,浙江省质科院赴景联文科技调研交流

7月10日上午&#xff0c;浙江省质科院标准化中心副主任蒋建平、应珊婷等一行领导带队莅临景联文科技调研指导工作。双方围绕工业数据展开深度交流。座谈会上&#xff0c;景联文科技详细汇报了数据资源建设与应用方面的成果与规划&#xff0c;介绍了公共数据授权运营与对外合作的…

【Linux】系统引导修复

目录 开机引导过程 一.通电 二.BIOS环境检测 三.磁盘引导阶段 四.文件引导阶段 自动引导配置文件丢失修复 内核参数文件丢失修复 内核镜像文件丢失修复 内核初始化文件丢失修复 boot目录误删丢失修复 开机引导过程 磁盘引导阶段 /boot/grub2/grub.cfg #读取自动引…

2023年全国青少年信息素养大赛C++编程初中组决赛真题+答案解析

2023年全国青少年信息素养大赛C++编程初中组决赛真题+答案解析 编程题 第一题 判断是否存在重复的子序列 题目描述 从m 个字符中选取字符,生成n 个符号的序列,使得其中没有2 个相邻的子序列相同。 如从1,2,3,生成长度为5 的序列,序列“12321”是合格的,而“12323”和“12123”…

MySQL5.78.0锁表确认及解除锁表完全指南

目录 一、MySQL锁机制基础 1.1 锁的分类与作用 1.2 关键锁类型详解 二、锁表的常见原因与风险 2.1 引发锁表的典型场景 2.2 锁表的业务影响 三、锁表状态确认方法 3.1 基础工具&#xff1a;SHOW PROCESSLIST 3.2 MySQL 8.0锁信息查询&#xff08;推荐&#xff09; 3.2…

springboot生成pdf方案之dot/html/图片转pdf三种方式

文章目录pdf生成方案dot转pdfhtml转pdfopenhtmltopdfaspose-pdf实践playwright实践图片转pdfApache PDFBox实践框架场景匹配后记前言&#xff1a;随着客户对报告审美的提升&#xff0c;需求也越来越五彩斑斓~ 原有的dot模板已经满足不了他们了&#xff01;这篇文章主打列出各种…

前端开发—全栈开发

全栈开发者在面试前端或全栈岗位时&#xff0c;自我介绍需要巧妙融合“技术广度”与“岗位针对性”&#xff0c;避免成为泛泛而谈的“样样通样样松”。以下是结合面试官关注点和全栈特性的专业介绍策略&#xff1a;&#x1f9e0; 一、自我介绍的核心理念 突出全栈优势&#xff…

Redis生产环境过期策略配置指南:务实落地,避免踩坑

在生产环境中合理配置Redis过期策略是保障系统稳定性和内存效率的关键。以下配置建议基于实战经验&#xff0c;避免理论堆砌&#xff0c;直击核心要点&#xff1a;一、核心策略配置&#xff1a;惰性删除 定期删除&#xff08;默认已启用&#xff09;无需额外配置&#xff1a;R…

Ubuntu 20.04 安装 Node.js 20.x、npm、cnpm 和 pnpm 完整指南

&#x1f310; Ubuntu 20.04 安装 Node.js 20.x、npm、cnpm 和 pnpm 完整指南 &#x1f680; 在本文中&#xff0c;我们将介绍如何在 Ubuntu 20.04 上安装 Node.js 20.x&#xff0c;以及如何安装 npm、cnpm 和 pnpm 来提高开发效率 ⚡。1️⃣ 安装 Node.js 20.x 为了确保使用最…

【时时三省】(C语言基础)通过指针引用数组元素

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省引用一个数组元素&#xff0c;可以用下面两种方法&#xff1a;( 1 )下标法&#xff0c;如a[i]形式&#xff1b;( 2 )指针法&#xff0c;如* ( a i )或* ( p i )。其中a是数组名&#xff0c;p…

Guava LoadingCache

LoadingCache 是 Google Guava 库提供的一个高级缓存实现&#xff0c;它通过自动加载机制简化了缓存使用模式。核心特性自动加载机制当缓存未命中时&#xff0c;自动调用指定的 CacheLoader 加载数据线程安全&#xff1a;并发请求下&#xff0c;相同key只会加载一次灵活的过期策…

基于LSTM-GRU模型的黄金价格动态监测:关税政策与美指的量化关联研究

摘要&#xff1a;本文通过BERT-Large模型对关税政策进行语义解析&#xff0c;结合LSTM-GRU混合模型、DCC-GARCH动态相关性模型及蒙特卡洛情景分析&#xff0c;量化解析7月11日黄金价格异动背后的三大驱动因子——政策冲击、美元指数压制与美联储政策不确定性&#xff0c;提供AI…

V少JS基础班之第七弹

文章目录一、 前言二、本节涉及知识点三、重点内容1、prototype2、constructor3、中场回顾&总结4、__ proto__5、第二次中场回顾&总结6、原型链6、第三次中场回顾&总结7、原型链中的奇点一、 前言 第七弹内容是原型链。网络上原型链的资料很多。但是我看了很多篇&…

Nuxt3自动打包及自动修改端口号脚本

Nuxt3自动打包及自动修改端口号脚本技术文章大纲 背景与需求 Nuxt3作为现代Vue框架&#xff0c;开发中常需处理打包部署和端口配置问题。自动化脚本可提升效率&#xff0c;减少手动操作错误。 实现自动打包 利用Nuxt3内置命令结合Node.js脚本实现自动化构建。通过npm run build…

红海云国资案例之多层级工贸集团的一体化HR平台建设实战

在中国经济迈向高质量发展的进程中&#xff0c;国有企业作为重要的经济支柱和行业引领者&#xff0c;正面临着数字化转型的深刻变革。F集团作为G市首家实现工贸一体化运营的大型企业&#xff0c;位列中国轻工业百强&#xff0c;其在人力资源数字化转型中的探索和实践&#xff0…