flex 弹性盒子布局多行最后一行左对齐的解决办法

1,513 阅读1分钟

一、使用 Grid布局

1、flex与Grid对比

第一点:

flex布局是一维布局

Grid布局是二维布局

第二点:

flex布局是轴线布局 只能指定"项目"针对轴线的位置

Grid 布局则是将容器划分成“行"和“列”,产生单元格,然后指定"项目所在”的单元格

2、html部分

<ul class="content_items">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
</ul>

3、CSS部分

.content_items {
    width: 1058px;
    display: grid;
    justify-content: space-between;
    // 划分列 功能函数关键字 repeat(auto-fill,minmax(240px,1fr)),根据子元素的盒子的份额自动计算可以平铺几次
    grid-template-columns: repeat(auto-fill,minmax(240px,1fr));
    // grid-gaprow-gapcolumn-gap 的简写形式。(就是行间距,和列间距,在这里40px是行间距,30px是列间距)
    grid-gap: 40px 30px;
}

4、完整代码

<!DOCTYPE html>
<html lang="en">
<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>Document</title>
    <style>
        * {
            margin:0;
            padding:0;
        }
        ul,li {
            list-style:none;
        }
        .content_items {
            margin: 40px auto;
            width: 1058px;
            display: grid;
            justify-content: space-between;
            grid-template-columns: repeat(auto-fill,minmax(240px,1fr));
            grid-gap: 40px 30px;
        }
        .content_items li {
            width: 240px;
            height: 220px;
            background-color: #f40;
            cursor: pointer;
            color: #fff;
        }
    </style>
</head>
<body>
    <ul class="content_items">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
    </ul>
</body>
</html>

5、效果图

image.png