【CSS面试题】Flex实现九宫格

考察知识:
flex布局 + 水平垂直居中的实现

初始效果

代码关键:给父盒子添加以下属性

      flex-wrap: wrap; /* 允许换行 */
      justify-content: space-around; /* 主轴对齐方式 */
      align-content: space-around; /* 多行在侧轴上的对齐方式 */

在这里插入图片描述

<!DOCTYPE html>
<html lang="zn-ch">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>flex九宫格</title>
  </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>
  </body>

  <script></script>

  <style lang="scss">
    .box {
      width: 400px;
      height: 400px;
      border: 1px solid red;

      display: flex; /*  */
      flex-wrap: wrap; /* 允许换行 */
      justify-content: space-around; /* 主轴对齐方式 */
      align-content: space-around; /* 多行在侧轴上的对齐方式 */

      .item {
        width: 100px;
        height: 100px;
        background-color: pink;
        border: 1px solid red;
      }
    }
  </style>
</html>

优化:每个小盒子的内容水平垂直居中

在这里插入图片描述

  <body>
    <div class="box">
      <div class="item">
        <div class="pink"></div>
        item-name
      </div>
      <div class="item">
        <div class="pink"></div>
        item-name
      </div>
      <div class="item">
        <div class="pink"></div>
        item-name
      </div>
      <div class="item">
        <div class="pink"></div>
        item-name
      </div>
      <div class="item">
        <div class="pink"></div>
        item-name
      </div>
      <div class="item">
        <div class="pink"></div>
        item-name
      </div>
      <div class="item">
        <div class="pink"></div>
        item-name
      </div>
      <div class="item">
        <div class="pink"></div>
        item-name
      </div>
      <div class="item">
        <div class="pink"></div>
        item-name
      </div>
    </div>
  </body>

  <script></script>

  <style lang="scss">
    .box {
      width: 400px;
      height: 400px;
      border: 1px solid red;

      display: flex; /*  */
      flex-wrap: wrap; /* 允许换行 */
      justify-content: space-around; /* 主轴对齐方式 */
      align-content: space-around; /* 多行在侧轴上的对齐方式 */

      .item {
        width: 100px;
        height: 100px;
        background-color: skyblue;
        border: 1px solid red;

        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-content: center;

        .pink {
          width: 50px;
          height: 50px;
          border-radius: 50%;
          background-color: pink;
        }
      }
    }
  </style>

在这里插入图片描述

相关推荐

  1. C#WPF九宫图片背景实例

    2024-04-13 05:32:02       27 阅读
  2. 面试CSS 怎样实现动画?

    2024-04-13 05:32:02       28 阅读
  3. 45 对接海康视频九宫实现

    2024-04-13 05:32:02       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-13 05:32:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-13 05:32:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-13 05:32:02       82 阅读
  4. Python语言-面向对象

    2024-04-13 05:32:02       91 阅读

热门阅读

  1. Igh related:Small Bug And Notes Record.

    2024-04-13 05:32:02       43 阅读
  2. OpenCV C++ 学习笔记(一)

    2024-04-13 05:32:02       40 阅读
  3. C 共用体

    2024-04-13 05:32:02       35 阅读
  4. 常见的分类算法及其应用场景

    2024-04-13 05:32:02       29 阅读
  5. 数据仓库—ETL工具与技术:数据仓库的坚实基石

    2024-04-13 05:32:02       35 阅读
  6. 8266 Ubuntu下 arduino开发

    2024-04-13 05:32:02       35 阅读
  7. Promise学习笔记

    2024-04-13 05:32:02       37 阅读
  8. 数据仓库—ETL技术全景解读:概念、流程与实践

    2024-04-13 05:32:02       35 阅读
  9. Hive窗口函数

    2024-04-13 05:32:02       28 阅读
  10. FTP超大文件下载入库--断点续传发

    2024-04-13 05:32:02       29 阅读
  11. 常见分类算法及其应用

    2024-04-13 05:32:02       31 阅读
  12. kylin使用心得

    2024-04-13 05:32:02       34 阅读