CSS3小问题-flex布局子元素高度设置无效
前言
今天在写 flex 自适应布局的时候,出现了一个问题:flex 布局子元素高度设置无效。
我的页面布局是这样的
1 | <div class="father"> |
原因
当指定 view 为 flex 布局后,给子元素定义width
和height
是不起效果的。原因:定义为 flex 布局元素的子元素,自动获得了flex-shrink
的属性,这个属性是什么意思呢?就是告诉子元素当父元素宽度不够用时,自己调整自己所占的宽度比,这个flex-shrink
设置为 1 时,表示所有子元素大家同时缩小来适应总宽度。当flex-shrink
设置为 0 时,表示大家都不缩小适应。
解决方法
所以,倘若给父元素设置了 flex 布局后.
- 若要其子元素的 width 和 height 有效果,必须给子元素设置
flex-shrink
为 0。 - 将设置
flex:1 1 auto;
的元素的宽设置为width:0;