flex 最后一行左对齐

最近项目布局上要求item两端对齐,而且最后一行在列不满的情况下要求左对齐,使用flex的justify-content: space-between;实现时发现最后一行不能左对齐,而是两端对齐方式,下图不是项目上想要的效果(不使用flex也可以实现,本文仅讨论使用flex实现)

flex 最后一行左对齐_第1张图片

在网上查了很多资料,
1.添加几个空item(对我来说最有效的,适用于大多数场景)
根据布局列数添加空item,比如每行最大n列,那么在最后添加n-2个空item即可

<html>
<style>
  .item {
    width: 32%;
    background-color: #00abff;
    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>

flex 最后一行左对齐_第2张图片

2.利于after(适用于每行列数确定的场景)

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

你可能感兴趣的:(CSS)