flex属性中flex-shrink收缩比例,排版一行挤在一起,宽度失效

作者:Jasmine - 2020年06月12日

做手机页面的时候,用了flex排版布局,布局效果是想要所有内容一行显示,超出内容会滚动横向滚动条显示,然后遇到问题,flex布局的内容的设置了宽度失效了,所有内容会强制一行显示了,但是会挤在一起显示。

效果如下图:


解决办法:

设置flex-basis: 170rpx;flex-shrink: 0;主要是flex-shrink这个属性,意思是收缩比例,如果设置为0,就是不收缩了。

flex-basis: 170rpx;或设置width都可以,设置内容列表的flex-shrink:0,这样就可以正常显示了。

比如实现的效果,下面是css展示:


.tabnav-head {
    display: flex;
    justify-content: space-between;
    line-height: 80rpx;
    font-size: 30rpx;
    height: 80rpx;
    border-bottom: 1px solid #ccc;
    overflow-x: scroll;
    overflow-y: hidden;

    // flex-basis: 172rpx 子容器基准大小 表示在不伸缩的情况下子容器的原始尺寸
    //flex-shrink: 0 收缩比例
    .nav-cell {
        // flex: 1;
        // width: 30%;
        position: relative;
        line-height: 80rpx;
        text-align: center;
        white-space: nowrap;
        flex-basis: 170rpx;
        flex-shrink: 0;
        cursor: pointer;
    
        &.selected::after {
            content: "";
            position: absolute;
            bottom: -2rpx;
            left: 0;
            right: 0;
            z-index: 22;
            width: 60%;
            margin: 0 auto;
            color: #007AFF;
            border-bottom: 3px solid #007AFF;
        }
    }
}


效果:

本文作者: Jasmine

本文链接: https://www.jianbaizhan.com/article/656

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!