flex布局space-between,最后一行左对齐

2019-11-10  本文已影响0人  刘其瑞

space-between 是俩端对齐,估计出现问题:


最后一行被撑开了,不是我们想要的!!那如何让最后一左对齐呢?

方法一、添加几个空item
根据布局列数添加空item,比如每行最大n列,那么在最后添加n个空item即可

<html>
<style>
  .item {
    width: 32%;
    height: 60px;
    margin-top: 10px;
  }

  .itemempty {
    height: 0px;
    width: 32%;
  }

  .box {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
</style>

<body>
  <div class="box">
    <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 class="itemempty"></div>
    <div class="itemempty"></div>
    <div class="itemempty"></div>
  </div>
</body>

</html>

方法二,使用after
网上常见的after方法,实现效果只是左对齐,而且中间间隔并不好控制

.box:after {
    content: "";
    flex: auto;
 }

解决方法: 在父元素的after伪元素中宽度设置成与item的宽一样即可(仅三个内可用)

&:after { 
    content: ""; 
    width:32%;
} 

最终实现效果:


6AE282720D9F1E7D49ABF69368A49FC0.png
上一篇下一篇

猜你喜欢

热点阅读