一、说明
1.在以往的布局方案中,都是基于盒装模型,依赖display属性+position属性+float属性等。
他对于那些特殊布局非常不方便,比如,垂直居中等。
并且不同浏览器的盒模型还有些差异,需要考虑兼容等问题。
2.CSS Flexbox
Flex布局,可以简便、完整、响应式实现各种页面布局。目前,他已经得到所有浏览器的支持(支持CSS3的浏览器)。
Flex布局将成为围栏布局的首选方案。
二、基本概念
1.Flex是Flexiable Box的缩写,意思是‘弹性布局’,用来为盒状模型提供最大的灵活性。
任何一个容易都可以指定为Flex布局。
.box{ display: flex; }
行内元素也可以使用Flex布局。
.box{ display: inline-flex; }
低版本的Webkit内核的浏览器,必须加上-webkit前缀
.box{ display: -webkit-flex; /* Safari */ display: flex; }
注意:设为 Flex 布局以后,子元素的float
、clear
和vertical-align
属性将失效。
2.基础模型
采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start
,结束位置叫做main end
;交叉轴的开始位置叫做cross start
,结束位置叫做cross end
。
项目默认沿主轴排列。单个项目占据的主轴空间叫做main size
,占据的交叉轴空间叫做cross size
。