完美解决 flex 实现一行三个,显示多行,左对齐

效果图

在这里插入图片描述

代码

<body>
    <section class="content">
        <div class="item">元素</div>
        <div class="item">元素</div>
        <div class="item">元素</div>
        <div class="item">元素</div>
        <div class="item">元素</div>
        <div class="item">元素</div>
        <div class="item">元素</div>
    </section>
</body>
<style>
    .content {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        background-color: skyblue;
    }
    .item {
        flex: 0 0 calc((100% - 10px)/3);
        height: 120px;
        background-color: pink;
        /* 间隙为5px */
        margin: 0 5px 5px 0;
    }
    .item:nth-child(3n) {
        /* 去除第3n个的margin-right */
        margin-right: 0;
    }
</style>

方法二

.item {
    /* flex: 0 0 calc((100% - 10px)/3); */
    width: calc((100% - 10px) / 3);
    height: 120px;
    background-color: pink;
    /* 间隙为5px */
    margin: 0 5px 5px 0;
}
注意calc写法

1、错误的格式:width:calc(100%-10px);

2、正确格式:width:calc(100% - 10px);

减号左右要留有空格,咱们只管用,也不敢问这是为什么

Grid实现

在这里插入图片描述

代码
    <div class="grid">
        <div class="pink"></div>
        <div class="pink"></div>
        <div class="pink"></div>
        <div class="pink"></div>
        <div class="pink"></div>
        <div class="pink"></div>
        <div class="pink"></div>
        <div class="pink"></div>
        <div class="pink"></div>
    </div>
<style>
        .grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            grid-template-rows: repeat(3, 1fr);
            gap: 10px;
            width: 100vw;
            height: 200px;
            background-color: skyblue;
        }

        .pink {
            background-color: pink;
        }
    </style>
使用flex布局一行三个平均的方法可以参考以下代码: ```html <style> .container { display: flex; justify-content: space-between; } .item { flex: 1; height: 100px; background-color: green; } </style> <div class="container"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> </div> ``` 在上述代码中,我们创建了一个包含三个子元素的容器,并使用`display: flex;`将容器设置为flex布局。然后使用`justify-content: space-between;`将子元素沿主轴等间距排列,即每个子元素之间的间距相等。最后,每个子元素使用`flex: 1;`将宽度设置为相等的比例,使得它们平均分布在一行中。 请注意,上述代码只是一种实现方式,您可以根据具体需求和样式进行调整。 [2 [3<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [flex实现三栏等分布局](https://blog.csdn.net/az44yao/article/details/117676640)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [CSS - 完美解决 flex 布局下,一行显示固定个数(平均分布)并且强制换行,超出后 “靠左“ 对其(详细解决...](https://blog.csdn.net/weixin_44198965/article/details/129988694)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值