布局效果:
如果不使用flex布局(使用传统方式布局)
布局效果
使用flex布局
与传统方式相比,Flex布局更加方便简洁
传统方式布局微信客户端界面
呈现效果
使用flex布局微信客户端界面
呈现效果
使用flex布局此时如果底部再加一个div,也可以呈现居中效果,其它写法均不需更改
呈现效果
因此使用弹性盒模型是很方便的,尤其是在移动端
改变弹性元素方向:flex-direction
呈现效果
控制弹性元素溢出换行处理
flex-wrap:wrap表示当父盒子放不下所有子元素时,不会压缩子元素,而是进行换行,wrap表示从左到右(或从上到下)换行
flex-flow属性是将flex-direction和flex-wrap属性结合在一起写
表示垂直排列,如果高度溢出则向右扩展
jusitify-content属性:控制主轴元素排列的方式
主轴是水平方向时:flex-direction:row
1
2
3
4
5
6
主轴是垂直方向时:flex-direction:column
flex-direction:column-reverse表示主轴为垂直方向并且是从下往上排列
交叉轴的对齐方式:align-items
1
2
宽度、高度的优先级是高于align-items:stretch的
3
对单个元素交叉轴的控制:align-self
元素可用空间分配:flex-grow
当不设置flex-grow时:
呈现效果
当设置flex-grow时:将主轴可用空间分成三等份,给三个孩子补上
如果是这样呢?应该怎么分?
呈现效果
布局小米移动端布局结构
呈现效果
flex-shrink:设置弹性盒子的缩小比率
当父元素宽度或高度不够时(子元素放不下),如果不使用flex-wrap,则会默认缩小,如果使用flex-shrink可以调节缩小比率
弹性元素的主轴基准尺寸:flex-basis
优先级大小:从大到小依次为max-height(min-height)->flex-basis->height(width)
flex组合属性
flex组合属性可以将flex-grow(放大) flex-shrink(缩小) flex-basis(基准尺寸)三个属性一起写在flex属性中