目标
布局目标: header
footer
固定布局,中间main
自适应,正常显示情况如下:
代码
部分代码如下:
html:
<div class="container">
<header>header</header>
<main>
<div></div>
<div></div>
<div></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</main>
<footer>footer</footer>
</div>
css:
.container{
display: flex;
flex-direction: column;
}
main{
flex:1;
background:yellow;
display: flex;
flex-wrap: wrap;
}
在firefox和edge中都正常显示,但在chrome中显示如下:
bug.png
当main
中的子元素由于设置了flex-wrap: wrap
换行时,导致撑破了main
元素,而footer
元素紧跟着main
,也被捅破了.
debug
-
flex
属性是flex-grow
(扩展量)flex-shrink
(伸缩量)flex-basis
(伸缩基准值)的简写,其默认值是0 1 auto
,可设如下值:
-
auto
: 与1 1 auto
相同; -
none
: 与0 0 auto
相同; -
initial
: 设置该属性为它的默认值,即0 1 auto
; -
inherit
: 从父元素继承该属性.
通过实验可以设置flex: 1 0 auto
达到最佳效果.
网友评论