11.8 flex子元素设置(续)

本节继续讲解flex子元素设置。


11.8.1 容器设置与子元素设置

大多数flex系列属性针对容器进行设置,对各列统一设置,主要包括:flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content、gap。

少数flex系列属性针对子元素设置,对各列个性化设置。flex子元素设置分两种情况:

(1)flex容器不支持设置。依靠属性默认值进行初始设置,无法在flex容器元素设置,例如:flex-grow、flex-shrink、flex-basis、flex、order。

(2)flex容器支持设置。容器通过相应属性名统一设置,子元素通过另外属性名进行个性化设置。例如:容器的align-items与子元素align-self都是行内垂直居中。


11.8.2 子元素垂直对齐方式align-self

前面已具体讲解,再次说明它的特殊性。flex容器元素通过align-item属性统一设置所有子元素在每一行的垂直对齐方式,flex子元素能够通过align-self单独设置自身的垂直对齐方式。


11.8.3 子元素显示顺序order

属性order表示各子元素的显示顺序,按从小到大显示。默认值0,可设置正负值。

示例代码

属性order表示各子元素的显示顺序,按从小到大显示。默认值0,可设置正负值。
示例代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>小步教程</title>

    <style>
        *{
            box-sizing: border-box;
        }
        .parent{
            display: flex;
            border: 1px solid #666;
        }


        [class^="col"]{
            width: 150px;
        }

        .col1{
            background-color: #0aaa76;
            order: 2;
        }

        .col2{
            background-color: #4aa6fc;
        }

        .col3{
            background-color: #ed7d31;
            height: 50px;
            order: 3;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="col1">第1列 小步教程</div>
        <div class="col2">第2列 xiaobuteach.com</div>
        <div class="col3">第3列</div>
    </div>
</body>
</html>

运行效果

img


实际应用场景。order实际运用通常在响应式布局。前面示例已介绍通过@media设置在不同窗口宽度的排列方向,同时可以调整order顺序。“11.5.2 垂直排列应用于响应式布局”示例调整代码如下。

        @media screen and (max-width : 520px) {
            .parent{
                flex-direction: column;
            }

            .col2{
                order: -2;
            }
            .col3{
                order: -1;
            }
        }

窗口宽度大于520时按正常顺序显示,小于等于520px时顺序变化。运行效果

img