grid的常见使用场景

场景1:固定几列显示,显示不下会自动换行

html 复制代码
<div id="container">
  <div class="item item-1">1</div>
  <div class="item item-2">2</div>
  <div class="item item-3">3</div>
  <div class="item item-4">4</div>
  <div class="item item-5">5</div>
  <div class="item item-6">6</div>
  <div class="item item-7">7</div>
  <div class="item item-8">8</div>
  <div class="item item-9">9</div>
</div>
css 复制代码
/* 关键代码  */
#container{
  display: grid;
  grid-template-columns: repeat(3,33.3%);// 平分页面三列
}

.item {
  font-size: 2em;
  text-align: center;
  border: 1px solid #e5e4e9;
}

.item {
  font-size: 2em;
  text-align: center;
  border: 1px solid #e5e4e9;
}

.item-1 {
  background-color: #ef342a;
}

.item-2 {
  background-color: #f68f26;
}

.item-3 {
  background-color: #4ba946;
}

.item-4 {
  background-color: #0376c2;
}

.item-5 {
  background-color: #c077af;
}

.item-6 {
  background-color: #f8d29d;
}

.item-7 {
  background-color: #b5a87f;
}

.item-8 {
  background-color: #d0e4a9;
}

.item-9 {
  background-color: #4dc7ec;
}
css 复制代码
#container{
  display: grid;
  grid-template-columns: repeat(2,50%);
}

场景2:格子宽度固定, 显示几列不确定

css 复制代码
#container{
  display: grid;
  grid-template-columns: repeat(auto-fill,120px);// 也可使用百分比
}

场景3:不同列所占份数不同

css 复制代码
#container{
  display: grid;
  grid-template-columns: 1fr 2fr;
}

使用gap调整行列之间的间距 :它是grid-row-gapgrid-column-gap属性的简写属性。(gap 属性以前被称为 grid-gap)

css 复制代码
#container{
  display: grid;
  grid-template-columns: repeat(3,1fr);
  grid-template-rows: repeat(3,1fr);
  gap:20px;
/*   grid-row-gap: 20px;
  grid-column-gap: 20px; */
}

场景4:有些列宽度不固定

minmax():宽度范围在最小值与最大值之间

css 复制代码
#container{
  display: grid;
  grid-template-columns: 1fr 1fr minmax(200px, 1fr);//第三列宽不小于200px,不大于1fr。
}

auto:表示由浏览器自己决定长度

css 复制代码
#container{
  display: grid;
  grid-template-columns: 50px auto 100px// 只固定1 3列
}

实用工具:css 网格布局在线生成

CSS Grid Generator

自定义行列数,可视化框选区域,可一键生成css代码:


在线运行示例
MDN:Grid介绍
阮一峰:CSS Grid 网格布局教程

相关推荐
寅时码21 分钟前
React 之死·终章:一个 useRef,把闭包陷阱、依赖数组、漫天 rerender 全送走
前端·react.js·ai编程
不好听61325 分钟前
HTML 事件监听机制:从 DOM Level 0 到 React 合成事件
前端·react.js·html
wordbaby33 分钟前
为什么刷新页面就 404?聊聊 SPA 路由与 Nginx 的那点事
前端
daols8839 分钟前
vxe-table 渲染器教程一:实现金额输入控件
javascript·vue.js·vxe-table
不好听6131 小时前
React 核心概念:JSX、组件与数据驱动
前端·react.js
触底反弹1 小时前
🔥 React 零基础入门(中):500 行屎山代码到组件化的蜕变
前端·javascript·react.js
不好听6131 小时前
React vs Vue:两大前端框架技术选型深度对比
前端·vue.js·react.js
GuWenyue1 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue1 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
小林ixn2 小时前
从 onclick 到 React 合成事件,再到完整应用逻辑:一次前端架构的深度剖析
前端·react.js·前端框架