一、说明

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​​。

CSS3 Flex布局整理(一)_safari