display:flex 中 justify-content: space-between方法的排版问题

发布于 2022-09-03 07:57:30 字数 666 浏览 38 评论 0

针对此属性 justify-content: space-between 3个元素为一行排列,最后多余的两个多余的元素如何让它靠左排布,事实上是左右排布了,表面看就是中间空了个元素,请看demo<div class="container">

<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>5</span></div>

.container {width: 400px;display:flex;justify-content: space-between;flex-flow: row wrap;}

span {width: 110px;background-color: #f60;border-radius: 5px;margin-top: 10px;padding: 10px;
}
图片描述

这个其实是此属性应有的效果 但是我想做到span按照顺序排下去,请问如何修改

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

桃扇骨 2022-09-10 07:57:30
.container::after {
  content: "";
  width: 130px;
}
诺曦 2022-09-10 07:57:30
  1. 方法一:
    给.container加一个:after伪元素:

    .container:after {
      content: "";
      flex: auto;
    }
    
  2. 方法二:
    在列表结尾增加一系列空值:

    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>

    在css里做如下定义:

    li:empty {
        height: 0;
        border: none;
    }
    
柠檬色的秋千 2022-09-10 07:57:30

我也遇到这个问题了,不过我的解决办法是这样的:
container 不变,
span 的宽度通过 calc()来计算,减去margin(这里可以微调试试)

span{
    width: calc(20% - 20px);
    margin:0 18px 20px 0;
}

但我这个唯一缺点就是,container 变宽时,span也会相应变宽,

其他效果还行。

图片描述

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文