当前位置: 首页 > news >正文

Web前端开发:Grid 布局(网格布局)

一、Grid 是什么?

        Grid(网格布局) 是 CSS 中一种二维布局系统,可以同时控制行和列的排列方式。相比传统的浮动布局和 Flexbox(一维布局),Grid 更适合构建复杂的网页结构(比如仪表盘、卡片布局等)。

 

二、核心概念

1. 网格容器(Grid Container)

通过 display: grid 将一个元素定义为网格容器,它的直接子元素自动成为网格项目(Grid Items)

.container {display: grid;
}
2. 行与列(Rows & Columns)
  • 轨道(Track):行或列的集合

  • 单元格(Cell):行和列的交叉区域

  • 网格线(Grid Line):分隔行或列的线(编号从 1 开始)

 

三、基础用法

1. 定义行列大小
.container {grid-template-columns: 100px 200px 1fr; /* 3列:100px、200px、剩余空间 */grid-template-rows: 50px auto; /* 2行:50px、自适应高度 */
}
  • fr 单位:按比例分配剩余空间(类似“份”)

  • repeat():简化重复值
    grid-template-columns: repeat(3, 1fr); → 3 列等宽

 2. 间距控制

.container {gap: 10px; /* 行和列间距均为 10px */row-gap: 20px; /* 单独设置行间距 */column-gap: 15px;
}

四、定位网格项目

1. 按网格线定位
.item {grid-column-start: 1; /* 起始于第1列线 */grid-column-end: 3;   /* 结束于第3列线(跨2列) */grid-row: 2 / 4;      /* 简写:从第2行线到第4行线 */
}
2. 使用 span 关键字
.item {grid-column: 1 / span 2; /* 从第1列开始,跨越2列 */
}

五、对齐方式

1. 整体对齐
.container {justify-content: center; /* 水平居中整个网格 */align-content: end;      /* 垂直底部对齐 */
}
2. 单元格内对齐
.container {justify-items: center; /* 所有项目水平居中 */align-items: stretch;  /* 默认拉伸填满单元格 */
}/* 单独控制某个项目 */
.item {justify-self: start;align-self: end;
}

 

六、响应式布局技巧

1. 自动填充列
.container {grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
  • auto-fill:自动填充尽可能多的列

  • minmax(200px, 1fr):列宽最小 200px,最大按比例分配

 2. 命名区域(适合复杂布局)
.container {grid-template-areas:"header header""sidebar main""footer footer";
}.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.footer { grid-area: footer; }

七、Grid vs Flexbox

特性GridFlexbox
维度二维(行+列)一维(行或列)
适用场景整体页面布局组件内部排列
内容优先容器控制布局内容决定布局
http://www.xdnf.cn/news/293077.html

相关文章:

  • ts学习(1)
  • 2024年408真题及答案
  • C++ 外观模式详解
  • php8 枚举使用教程
  • 稀疏性预测算法初步
  • 健康养生:从微小改变开始
  • 【YOLO11改进】改进Conv、颈部网络STFEN、以及引入PIOU用于小目标检测!
  • 基于Vue3开发:打造高性能个人博客与在线投票平台
  • 【MATLAB例程】基于RSSI原理的Wi-Fi定位程序,N个锚点(数量可自适应)、三维空间,轨迹使用UKF进行滤波,附代码下载链接
  • 反射-探索
  • CASS 3D使用等高线修改插件导致修后等高线高程变化的问题
  • 当前人工智能领域的主流高级技术及其核心方向
  • 10.施工测量
  • 引领变革的“Vibe Coding”:AI辅助编程的崛起与挑战
  • 某信服EDR3.5.30.ISO安装测试(一)
  • printf的终极调试大法
  • 分析 Docker 磁盘占用
  • FTP/TFTP/SSH/Telnet
  • FastMCP - 快速、Pythonic风格的构建MCP server 和 client
  • [人机交互]交互设计
  • Qwen3的“混合推理”是如何实现的
  • Kotlin-空值和空类型
  • 【AI提示词】SCAMPER法专家
  • 【最新Python包管理工具UV的介绍和安装】
  • SIFT算法详细原理与应用
  • 嵌入式模数转换原理与程序设计
  • 新型深度神经网络架构:ENet模型
  • 《 深入探索移位操作符:从原理到应用》
  • ESP-ADF battery_service组件之voltage_monitor子模块详解
  • 分析rand()和srand()函数的功能