flex两行非占满布局实现方式

87 阅读1分钟

功能:实现flex两行非占满布局

截图: image.png 思路一:使用antd的row col组件实现该布局。

思路二:纯flex布局,但是需要在最后一行补充两个不显示只占位的div。

思路三:flex + margin布局(需要浏览器支持calc()函数以及:nth-child()选择器)

<!DOCTYPE html>
<html lang="en">
    <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>flex两行非占满布局</title>
    <style>
        .exam-list {
            display: flex;
            justify-content: flex-start;
            align-items: center;
            flex-wrap: wrap;
        }
        .exam-item {
            flex: 1;
            height: 140px;
            text-align: center;
            margin: 0 20px 20px 0;
            padding-top: 20px;
            border: 1px solid #888;
            box-sizing: border-box;
            width: calc((100% - 60px) / 4);
            min-width: calc((100% - 60px) / 4);
            max-width: calc((100% - 60px) / 4);
        }
        .exam-item:nth-child(4n + 4) {
            margin-right: 0;
        }
    </style>
    </head>
    <body>
        <div class="exam-list">
            <div class="exam-item">环节1</div>
            <div class="exam-item">环节2</div>
            <div class="exam-item">环节3</div>
            <div class="exam-item">环节4</div>
            <div class="exam-item">环节5</div>
            <div class="exam-item">环节6</div>
        </div>
    </body>
</html>