CSS Flex 布局入门:display 与对齐方式

来自AI助手的总结
介绍了flex方向、换行及主轴侧轴对齐方式
CSS Flex 布局入门:display 与对齐方式

一、flex排列方向

控制主轴方向(元素从哪边开始排)

.container {
  display: flex;
  flex-direction: row;         /* 默认:从左到右 */
  /* flex-direction: column; */ /* 从上到下 */
}

示例说明:

1、创建一个名为css-study的文件夹并使用VSCode打开,再创建一个名为9-2.CSS常用属性-display属性-fiex排列方向.html

<!DOCTYPE html>
<html>
<head>
    <title>flex-direction演示</title>
    <style>
        .container {
            display: flex;
            background: #ecf0f1;
            padding: 10px;
            margin: 20px;
            border: 2px solid #3498db;
            height: 200px;
        }
        .row { flex-direction: row; }
        .row-reverse { flex-direction: row-reverse; }
        .column { flex-direction: column; }
        .column-reverse { flex-direction: column-reverse; }
        .item {
            width: 60px;
            height: 40px;
            background: #2ecc71;
            margin: 5px;
            color: white;
            display: flex;
            align-items: center;
            justify-content: center;
        }
    </style>
</head>
<body>
    <h2>flex-direction属性</h2>

    <h3>row(默认)</h3>
    <div class="container row">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
    </div>

    <h3>row-reverse</h3>
    <div class="container row-reverse">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
    </div>

    <h3>column</h3>
    <div class="container column">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
    </div>

    <h3>column-reverse</h3>
    <div class="container column-reverse">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
    </div>
</body>
</html>

2、双击【9-2.CSS常用属性-display属性-fiex排列方向.html】,观察到显示四种排列方向对比

image-20250519220539340

二、flex换行方式(flex-wrap)

默认不换行,挤不下会压缩

.container {
  display: flex;
  flex-wrap: nowrap; /* 默认 */
  /* flex-wrap: wrap; */ /* 自动换行 */
}

示例说明:

1、创建一个名为css-study的文件夹并使用VSCode打开,再创建一个名为9-3.CSS常用属性-display属性-fiex换行方式.html

<!DOCTYPE html>
<html>
<head>
    <title>flex-wrap演示</title>
    <style>
        .container {
            display: flex;
            background: #ecf0f1;
            padding: 10px;
            margin: 20px;
            border: 2px solid #3498db;
            width: 300px;
        }
        .nowrap { flex-wrap: nowrap; }
        .wrap { flex-wrap: wrap; }
        .wrap-reverse { flex-wrap: wrap-reverse; }
        .item {
            width: 100px;
            height: 40px;
            background: #3498db;
            margin: 5px;
            color: white;
            display: flex;
            align-items: center;
            justify-content: center;
        }
    </style>
</head>
<body>
    <h2>flex-wrap属性</h2>

    <h3>nowrap(默认不换行)</h3>
    <div class="container nowrap">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
    </div>

    <h3>wrap(自动换行)</h3>
    <div class="container wrap">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
    </div>

    <h3>wrap-reverse(反向换行)</h3>
    <div class="container wrap-reverse">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
    </div>
</body>
</html>

2、双击【9-3.CSS常用属性-display属性-fiex换行方式.html】,展示不同换行方式的空间分配

image-20250519220617223

三、flex对齐方式(非常重要)

Flex 里有两个方向:

  • 主轴对齐:justify-content
  • 交叉轴对齐:align-items

主轴对齐 justify-content

.container {
  display: flex;
  justify-content: flex-start; /* 左对齐 */
  /* center / space-between / space-around / space-evenly */
}

交叉轴对齐 align-items

.container {
  display: flex;
  align-items: center; /* 垂直居中(当主轴为 row 时) */
}

最常用的“水平垂直居中”组合:

.container {
  display: flex;
  justify-content: center;
  align-items: center;
}

示例说明:

1、创建一个名为css-study的文件夹并使用VSCode打开,再创建一个名为9-4.CSS常用属性-display属性-fiex对齐方式.html

<!DOCTYPE html>
<html>
<head>
    <title>Flex对齐方式</title>
    <style>
        .container {
            display: flex;
            background: #ecf0f1;
            padding: 10px;
            margin: 20px;
            border: 2px solid #3498db;
            height: 200px;
            width: 500px;
        }
        .justify-start { justify-content: flex-start; }
        .justify-center { justify-content: center; }
        .justify-end { justify-content: flex-end; }
        .justify-between { justify-content: space-between; }
        .justify-around { justify-content: space-around; }

        .align-stretch { align-items: stretch; }
        .align-center { align-items: center; }
        .align-start { align-items: flex-start; }

        .item {
            width: 80px;
            background: #e67e22;
            margin: 5px;
            color: white;
            padding: 10px;
        }
    </style>
</head>
<body>
    <h2>主轴对齐(justify-content)</h2>
    <div class="container justify-start">
        <div class="item">start</div>
        <div class="item">start</div>
    </div>
    <div class="container justify-center">
        <div class="item">center</div>
        <div class="item">center</div>
    </div>
    <div class="container justify-between">
        <div class="item">between</div>
        <div class="item">between</div>
    </div>

    <h2>侧轴对齐(align-items)</h2>
    <div class="container align-stretch">
        <div class="item" style="height: auto;">stretch</div>
        <div class="item" style="height: auto;">stretch</div>
    </div>
    <div class="container align-center">
        <div class="item">center</div>
        <div class="item">center</div>
    </div>
    <div class="container align-start">
        <div class="item">start</div>
        <div class="item">start</div>
    </div>
</body>
</html>

2、双击【9-4.CSS常用属性-display属性-fiex对齐方式.html】

image-20250519220733642

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容