CSS网格布局

1. grid布局的介绍

1.1 适用场景

1.2 网格布局的概念

1.3 网格轨道

【1】语法

【2】对齐方式

html 复制代码
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      /* 给父亲加网格布局属性 */
      display: grid;
      /* 创建行轨道 */
      grid-template-rows: 100px 100px 100px;
      /* 创建列轨道 */
      grid-template-columns: 100px 100px 100px;
      /* 让列轨道两端对齐 */
      justify-content: space-between;
      width: 320px;
      height: 320px;
      border: 1px solid red;
      margin: 20px;
    }

    .box div {
      background-color: pink;
    }

    /* 1.不要设置行轨道 */
    /* 2.给子盒子高度,让子盒子撑起来 */
    .content {
      /* 给父亲加网格布局属性 */
      display: grid;
      /* 创建列轨道 */
      grid-template-columns: 160px 160px 160px 160px 160px 160px;
      justify-content: space-between;
      width: 1000px;
      margin: 0 auto;
      border: 1px solid red;
    }

    .content div {
      height: 100px;
      background-color: pink;
      margin-bottom: 10px;
    }
  </style>
</head>

<body>
  <div class="box">
    <div class="item1">1</div>
    <div class="item2">2</div>
    <div class="item3">3</div>
    <div class="item4">4</div>
    <div class="item5">5</div>
    <div class="item6">6</div>
    <div class="item7">7</div>
    <div class="item8">8</div>
    <div class="item9">9</div>
  </div>
  <div class="content">
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
  </div>
</body>

【3】绘制网格轨道

【4】网格间距

html 复制代码
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .nav {
      /* 设置网格布局 */
      display: grid;
      /* 定义网格列数 */
      grid-template-columns: repeat(11, 1fr);
      /* 定义网格行数 */
      grid-template-rows: 1fr 1fr;
      width: 935px;
      height: 66px;
      /* border: 1px solid red;*/
      margin: 100% auto;
      gap: 10px;
    }

    /* 设置a的盒子 */
    .nav a {
      background-color: #F6F7F8;
      border-radius: 6px;
      border: 1px solid #F1F2F3;
      /* 居中 */
      text-align: center;
      line-height: 28px;
    }
  </style>
</head>

<body>
  <div class="nav">
    <a href="#">番剧</a>
    <a href="#">动画</a>
    <a href="#">电影</a>
    <a href="#">电视剧</a>
    <a href="#">纪录片</a>
    <a href="#">综艺</a>
    <a href="#">儿童</a>
    <a href="#">成人</a>
    <a href="#">其他</a>
    <a href="#">全部</a>
    <a href="#">音乐</a>
    <a href="#">体育活动</a>
    <a href="#">知识</a>
    <a href="#">其他</a>
    <a href="#">全部</a>
    <a href="#">其他</a>
    <a href="#">全部</a>
    <a href="#">其他</a>
    <a href="#">全部</a>
    <a href="#">其他</a>
    <a href="#">全部</a>
    <a href="#">其他</a>
  </div>
</body>

1.4 auto fil自动填充完成响应式效果

【1】各种函数

【2】响应式效果

html 复制代码
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    /* 整体布局要求 */
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    .box {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
      max-width: 1350px;
      margin: 30px auto;
      gap: 18px;
    }

    .box video {
      width: 100%;
      height: 100%;
      /* 圆角 */
      border-radius: 18px;
    }
  </style>
</head>

<body>
  <div class="box">
    <video src="../images/china.mp4"></video>
    <video src="../images/china.mp4"></video>
    <video src="../images/china.mp4"></video>
    <video src="../images/china.mp4"></video>
    <video src="../images/china.mp4"></video>
    <video src="../images/china.mp4"></video>
    <video src="../images/china.mp4"></video>
    <video src="../images/china.mp4"></video>

  </div>
</body>

1.5 网格线

html 复制代码
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    /* 整体布局要求 */
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    .box {
      /* 网格布局 */
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 10px;
      max-width: 1200px;
      margin: 100px auto;
      /* 边框 */
      border: 1px solid red;
    }

    .box .item {
      height: 120px;
      background-color: pink;
    }

    .box .item:first-child {
      /* 1号线到3号线 */
      /* grid-column: 1/3;
      grid-row: 1/3; */
      /* span 2是跨2个单元格的意思 */
      grid-column: span 2;
      grid-row: span 2;
      height: auto;
    }
  </style>
</head>

<body>
  <div class="box">
    <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 class="item">7</div>
    <div class="item">8</div>
    <div class="item">9</div>
    <div class="item">10</div>
    <div class="item">11</div>
    <div class="item">12</div>

  </div>
</body>

1.6 网格填充方式

html 复制代码
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    /* 整体布局要求 */
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    .box {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      grid-template-rows: 1fr 1fr;
      /* 修改网格填充方式 */
      grid-auto-flow: column;
      gap: 10px;
      max-width: 1760px;
      height: 900px;
      margin: 100px auto;
      border-radius: 20px;
    }

    .box .item {
      background-color: pink;
    }

    .box .item:first-child {
      grid-row: 1/3;
    }

    .box .item:nth-child(3) {
      grid-column: 2/4;
      grid-row: 2/3;
    }
  </style>
</head>

<body>
  <div class="box">
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>
    <div class="item">4</div>
  </div>
</body>

1.7 项目对齐方式

【1】适用场景

【2】语法

1.8 总结

相关推荐
mustfeng2 分钟前
VCS & Verdi 2023安装
java·服务器·前端
Mintopia22 分钟前
🌐 数据合规框架下的 WebAIGC 训练数据处理技术规范
前端·javascript·aigc
骥龙41 分钟前
2.6、Web漏洞挖掘实战(下):XSS、文件上传与逻辑漏洞深度解析
前端·xss
用户433845375691 小时前
Promise深度解析,以及简易版的手写实现
前端
梦之云1 小时前
state 状态相关
前端
梦之云1 小时前
effect 副作用相关
前端
golang学习记1 小时前
从0死磕全栈之Next.js 生产环境优化最佳实践
前端
Mintopia1 小时前
🧠 Next.js 还是 Nuxt.js?——当 JavaScript 碰上命运的分叉路
前端·后端·全栈
5pace2 小时前
Mac Nginx安装、启动、简单命令(苍穹外卖、黑马点评前端环境搭建)
java·前端·nginx·macos·tomcat
Learn Beyond Limits2 小时前
如何在Mac进行Safari网页长截图?
前端·macos·safari·方法·操作·功能·开发者平台