问题描述:
flex布局中,通常我们都希望子元素的高度是自适应、自动被内容撑开,我们的做法基本是直接display:flex,不需要额外再去设置其他属性就会得到下面的效果。但是最近使用uniapp模拟产品分类demo的时候,发现flex布局后,高度在盒子比较少的情况下竟然自动被平分了,而不是根据内容自适应高度了,如下面的图片(如果盒子比较多,一屏装不下的时候不会被平分,还是由内容撑开)。
疑问点:
通常的话应该不会出现高度自动平分的情况,我这里出现的原因是因为右边高度自动占比height:100%的缘故。flex布局中,align-content属性(多根轴线对齐方式)的默认值是stretch。对于stretch值的说明:各行将会伸展以占用剩余的空间。如果剩余的空间是负数,该值等效于’flex-start’。在其它情况下,剩余空间被所有行平分,以扩大它们的侧轴尺寸。所以就会出现上面的情况。
解决方案:
其实很简单,直接去设置align-content的属性值为flex-start,或者其他你想要的效果值即可。