解决flex布局中 space-between方法的排版问题

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

flex给我们的布局带来了很大的方便 ,但有时候也会碰到一些问题,比如space-between最后一行元素的排列问题

问题:假如我们有8个元素

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
</ul>
<style>
  ul {
    width: 300px;
    height: 400px;
    background: #f0f0f0;
    list-style: none;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 5px;
  }
  ul li {
    width: 90px;
    height: 50px;
    text-align: center;
    line-height: 50px;
    background: pink;
    border-radius: 10px;
  }
  </style>

由于space-between就是两端布局,当最后一行不满三个的时候,最后一排会分在两端。

解决方案:使用after伪元素来解决该布局bug

ul:after{
    content: '';
    width: 90px;
 }

完美。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: align-content: space-between 是 CSS 用于设置 flex 布局多行内容之间的垂直对齐方式。当设置为 space-between 时,多行内容之间将均匀分布,且相邻两行之间的距离相等,即每行内容的上下边距相等。 ### 回答2: align-content: space-between是一种CSS属性,可以用来设置容器内多个项目之间的垂直对齐方式。当容器内的项目不足以填满整个容器时,使用该属性可以控制项目之间的对齐方式。 align-content: space-between的效果是将第一个项目与容器的顶部对齐,将最后一个项目与容器的底部对齐,并将剩余的项目均匀地分布在项目之间,形成相等的间距。 举个例子,假设有一个父容器的高度为500px,内部有3个子项目,分别为A、B、C。如果项目A的高度为100px,项目B的高度为200px,项目C的高度为150px,并且设置了align-content: space-between。那么首先项目A将与容器的顶部对齐,项目C将与容器的底部对齐,然后剩下的空间(500px-100px-150px)为250px,会被平均分配给项目B和其他间距。最终的效果是:项目A与容器顶部对齐,项目B距离A有100px的间距,项目C距离B有100px的间距,项目C与容器底部对齐。 通过使用align-content: space-between,可以在项目不填满容器时实现它们的垂直平均对齐分布,给页面带来更好的视觉效果和排版布局。 ### 回答3: align-content: space-between是一种CSS属性,用于控制多行元素的排列方式。 当使用align-content: space-between时,多行元素会沿着主轴方向均匀地分布在容器,使得两行之间的间距相等。这意味着第一行元素会贴近容器的起始边缘,最后一行元素会贴近容器的结束边缘,而其余行元素的间距会均匀分布。 这种排列方式适用于容器有多行元素的情况,且在不同行之间需要保持相等的间距。例如,当有多个图片或按钮等元素需要在容器排列时,通过设置align-content: space-between,可以使得它们在容器均匀分布,并且在不同行之间有等距离的间隔。 需要注意的是,align-content属性只在有多行的情况下才有效果,当容器只有一行元素时,该属性不会产生任何效果。此外,还要确保父容器的高度足够容纳所有的子元素,否则元素可能会被压缩或溢出容器。 总而言之,使用align-content: space-between可以在不同行之间创建均匀且相等间距的排列效果,适用于容器有多行元素需要等间距排列的情况。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值