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 网格布局教程

相关推荐
小李小李不讲道理14 分钟前
「Ant Design 组件库探索」五:Tabs组件
前端·react.js·ant design
毕设十刻15 分钟前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
mapbar_front1 小时前
在职场生存中如何做个不好惹的人
前端
牧杉-惊蛰1 小时前
纯flex布局来写瀑布流
前端·javascript·css
一袋米扛几楼982 小时前
【软件安全】什么是XSS(Cross-Site Scripting,跨站脚本)?
前端·安全·xss
向上的车轮2 小时前
Actix Web适合什么类型的Web应用?可以部署 Java 或 .NET 的应用程序?
java·前端·rust·.net
XiaoYu20023 小时前
第1章 核心竞争力和职业规划
前端·面试·程序员
excel3 小时前
🧩 深入浅出讲解:analyzeScriptBindings —— Vue 如何分析 <script> 里的变量绑定
前端
蓝瑟3 小时前
AI时代程序员如何高效提问与开发工作?
前端·ai编程
林晓lx3 小时前
使用Git钩子+ husky + lint语法检查提高前端项目代码质量
前端·git·gitlab·源代码管理