本文介绍: 效果如下这样的样子很丑可以使用计算宽度解决假设容器宽度是600px,每个项目宽度是110px,每行可以显示5个,剩余宽度= 600px-110x50px = 50,因为每行最多可以显示5个,50/5 = 10,给每个项目marginright设置10px最后一个设置即可原理因为一个元素设置flex里面元素就不严格区分块级行内及了,所以可以设置宽高我们未每个i元素设置item一样的宽度,但是,所以我们看不见,也,当第二行只有1个的时候,不会影响默认靠边界,当第二行有2、3

有以下场景

    <style>
      .wrapper {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        width: 600px;
        background-color: #aff;
      }
      .item {
        width: 110px;
        height: 110px;
        background-color: #faa;
      }

    </style>
  </head>
  <body>
    <div class="wrapper">
      <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>
      <div class="item"></div>

    </div>
  </body>

效果如下
在这里插入图片描述
这样的样子很丑

解决方案

方法

可以使用计算宽度解决假设容器宽度是600px,每个项目宽度是110px,每行可以显示5个,剩余宽度= 600px-110×50px = 50,因为每行最多可以显示5个,50/5 = 10,给每个项目marginright设置10px,最后一个设置(div:nth-child(5n) {margin-right:0})即可

方法

部分代码

    <style>
      .wrapper > i {
        width: 110px; /*宽度要和每个项目的宽度一样*/
      }
    </style>
  </head>
  <body>
    <div class="wrapper">
      <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>
      <div class="item"></div>
      <i></i><i></i><i></i>
    </div>
  </body>

原理

因为一个元素设置flex里面的元素就不严格区分块级行内及了,所以可以设置宽高我们未每个i元素设置和item一样的宽度,但是高度是0,所以我们看不见,也不会影响布局,当第二行只有1个的时候,不会影响默认靠边界,当第二行有2、3、4个的时候那么就剩下3、2、1个元素需要补位,正好我们添加了3个i元素.

到底加几个i元素

i元素的个数 = 列数 - 2 (-1也行,但是少个元素总是少点代码
原理其实很简单,因为第二行缺几个我们就补上几个元素,这样就能和上一行一样显示了。
为啥要减去2呢,假如第二行只有一个元素的情况下,justify-content:space-between就会贴边靠齐,没有影响

为了更加直观的感受到,当给i元素设置高度背景效果如下,(注意,当i元元素的高度是0的时候不会影响布局,我们也看不到,这里用i元素是因为短,可以用别的元素)
在这里插入图片描述

原文地址:https://blog.csdn.net/qq_51558433/article/details/125668960

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_16465.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注