【bug记录5】flex横向布局时子元素设置宽度无效

一、问题背景

对父元素list使用了flex布局之后,尝试将其子元素item固定宽度,但发现宽度设置不生效并且实际宽度被压缩了

具体的css代码如下:

      .list {
        display: flex;
        align-items: center;
        justify-content: space-between;

        //没设置宽度,因为想适配子元素的总宽度
        height: 64px;
        padding: 16px 15px;
        
        overflow-x: scroll;
        overflow-y: hidden;


      }

      .item {
        display: inline-block;
        width: 30px;
        height: 30px;
      }

二、问题分析

原因:

  • 由于list没设置宽度,因此list在弹性布局下宽度会优先适配自己的父元素的宽度
  • 在这里由于item子元素数量多,加起来的总宽度大于list元素的父元素的宽度,因此被设置了flex布局的list元素会挤压子元素,并优先执行上面这一条原则。所以item子元素的实际width小于设置值

三、解决方法

在item子元素里面加一个flex-shrink:0,代表元素不允许被弹性布局挤压

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音仔小瓜皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值