CSS flex-wrap 属性

CSS flex-wrap 语法

在 CSS 中,flex-wrap 属性用于定义 flex 容器中子项是否换行显示,也就是子元素是 “单行显示” 还是 “多行显示”。

语法:

flex-wrap: 关键字;

说明:

flex-wrap 属性的取值有 3 种,如下表所示。

flex-wrap 属性取值
属性 说明
nowrap(默认值) 单行显示
wrap 换行显示,也就是多行显示
wrap-reverse 换行显示,但却是反方向

当 flex-wrap 的值为 wrap 或 wrap-reverse 时,flex 容器会成为多行容器,此时可以使用 align-content 属性来控制这些行在交叉轴上的对齐方式。

注意: flex-wrap 属性只会作用于 flex 容器 (display: flex; 或 display: inline-flex;)。

CSS flex-wrap 摘要

属于 CSS flex 布局
使用频率
是否继承
默认值 nowrap
兼容性 查看
官方文档 查看
MDN 查看

CSS flex-wrap 示例

接下来,我们通过一个简单的例子来讲解一下 flex-wrap 属性是如何使用的。

示例:flex-wrap 基本用法

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        .box {
            display: flex;
            width: 500px;
            height: 500px;
            background-color: skyblue;
        }
        .box > div {
            box-sizing: border-box;
            width: 100px;
            height: 100px;
            border: 1px solid silver;
            background-color: hotpink;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
        <div>5</div>
        <div>6</div>
        <div>7</div>
        <div>8</div>
    </div>
</body>
</html>

页面效果如下图所示。

flex-wrap 示例

分析:

默认情况下,flex 布局的子元素都是横向排列,即使总宽度大于父元素宽度也不会换行,并且会 “压缩” 以适应父元素宽度。

如果父元素使用的是 flex-wrap: wrap;,此时页面效果如下图所示。

flex-wrap:wrap;

可以看到,虽然子元素是换行显示了,但被换行的子元素是在剩余空间上垂直居中,而不是在第二行开始。为了解决这个问题,我们可以不给父元素设置高度。将父元素高度(即 height: 500px;)删除之后,效果如下图所示。

删除父元素高度后效果

如果给父元素设置 flex-wrap: wrap-reverse;,此时页面效果如下图所示。

flex-wrap:wrap-reverse;

flex-flow 是一个复合属性

在 CSS 中,flex-flow 是一个复合属性,它有 2 个子属性(如下表所示)。

flex-flow 的子属性
子属性 说明
flex-direction 定义 flex 容器的主轴方向
flex-wrap 定义 flex 容器中子项是否换行显示

上一篇: flex-direction

下一篇: flex-flow

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号