让浮动元素在一行显示

📝个人主页:爱吃炫迈
💌系列专栏:HTML+CSS
🧑‍💻座右铭:道阻且长,行则将至💗

image-20230705142640317

<div class="wrap">
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>
    <div class="item">4</div>
    <div class="item">5</div>
</div>
.wrap {
    width: 1190px;
    height: 1000px;
    margin: 0 auto;
    background-color: pink;
}

.item {
    float: left;
    width: 230px;
    height: 322px;
    /* 给每一个元素设置margin-right*/
    margin-right: 10px;
    background-color: powderblue;
}

问题:

  1. 整个大盒子的宽度是1190px,每个小盒子的宽度是230px
  2. 给每一个小盒子设置margin-right
  3. 导致最后一个盒子因为第一行剩余位置不足而跑到了第二行

解决方案:

  1. 让最后一个盒子不要设置margin-right
.item:last-child {
    margin-right: 0;
}

缺点:

  • 有兼容性问题
  • 当盒子很多的时候,需要设置每一行的最后一个盒子,非常废手
  1. 基于第一种方法,为了不废手,使用nth-child
.item:nth-child(5n) {
    margin-right: 0;
}

缺点:有兼容性问题

  1. 直接增加大盒子的宽度
.wrap {
    width: 1200px;
    // 其余都一样
}

缺点:

  • 不够完美,最后一个盒子后面有一个空白
  1. 追求完美,就要大盒子wrap的宽度为1190px,再用一个box盒子包裹所有小盒子,给这个盒子设置margin-right=-10px
<div class="wrap">
    <div class="box">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
        <div class="item">5</div>
    </div>
</div>
.wrap .box {
    margin-right: -10px;
    background-color: red;
}

分析:

  1. wrap盒子宽度=box盒子宽度+margin-right+margin-left
  2. 1190 = box盒子宽度 + -10px + 0
  3. 所以box盒子宽度为1120px

wrap盒子宽度=box盒子宽度+margin-right+margin-left
2. 1190 = box盒子宽度 + -10px + 0
3. 所以box盒子宽度为1120px

因为box盒子是个div,默认宽度是1190px,而设置了margin-right=-10px之后,强行将box盒子的宽度拉到1200px了。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃炫迈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值