css grid实现流体布局

虽然使用flex也可以实现流式布局,但是我觉得使用Grid实现布局更方便,也更好控制。

使用CSS Grid实现流式布局的步骤:

css 复制代码
<div class="grid-container">
  <div class="grid-item">1</div>
  <div class="grid-item">2</div>
  <div class="grid-item">3</div>
  <div class="grid-item">4</div>
  <div class="grid-item">5</div>
  <div class="grid-item">6</div>
  ...
</div>
css 复制代码
.grid-container {
  display: grid;
  // 规定网格布局中的列数(和宽度)
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); /* 定义列宽 */
  gap: 0px; /* 设置网格项之间的间隔 */
}

css解析

  1. repeat(重复次数, 轨道尺寸)
  2. auto-fill会根据可用空间自动填充尽可能多的列或行
  3. minmax(min, max)函数定义了列或行的最小和最大尺寸
  4. fr单位允许列宽根据可用空间动态调整

所以grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); 的意思就是满足每列最小200px的情况下自动调整列数填充尽可能多的列,填充尽可能多的列后剩余宽度再分配给每一列 ,假设屏幕宽度是900,填充后就是4列,每列宽度是200+(100/4) = 225, 前提是gap: 0px的情况下

还可以配合媒体查询实现响应式布局

css 复制代码
.grid-container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
 
@media (max-width: 600px) {
  .grid-container {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); /* 小屏幕时调整最小宽度 */
  }
}
相关推荐
IT_陈寒10 分钟前
Python的GIL让我多写了500行代码
前端·人工智能·后端
风骏时光牛马11 分钟前
AI智能体能力调度微服务
前端
Eloudy2 小时前
ReAct 原理简介
前端·javascript·人工智能·react.js·agent·gpu
ZJU_统一阿萨姆3 小时前
【DSH】如何将 DeepSeek Harness 嵌入生产环境?万字解构 DeepSeek Agent Harness 的运行机制与安全边界
前端·javascript·安全
用户921080262863 小时前
4. 前端地图大量点位实时更新优化:后端推增量,前端做 diff
前端
SoaringHeart3 小时前
Flutter最佳实践:Web项目中文字体首次加载乱码问题解决
前端·flutter
西安小哥4 小时前
破局与重生:大厂前端如何借力 AI 转型“超级全栈“
前端·人工智能
sunly_4 小时前
TypeScript总结:16、面向对象速查
前端·javascript·typescript
MXN_小南学前端4 小时前
React超长文本域中实现“返回顶部”浮动按钮
前端·javascript·react.js
学习嵌入式的小周5 小时前
Notepad++8.8.7下载安装(附安装包)
前端·notepad++