stretch: 各行将会伸展以占用剩余的空间。如果剩余的空间是负数,该值等效于'flex-start'。在其它情况下,剩余空间被所有行平分,以扩大它们的侧轴尺寸。
子元素属性 .item{ order: <integer>; /*排序:数值越小,越排前,默认为0*/ flex-grow: <number>; /* default 0 */ /*放大:默认0(即如果有剩余空间也不放大,值为1则放大,2是1的双倍大小,以此类推)*/ flex-shrink: <number>; /* default 1 */ /*缩小:默认1(如果空间不足则会缩小,值为0不缩小)*/ flex-basis: <length> | auto; /* default auto */ /*固定大小:默认为0,可以设置px值,也可以设置百分比大小*/ flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] /*flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto,*/ align-self: auto | flex-start | flex-end | center | baseline | stretch; /*单独对齐方式:自动(默认) | 顶部对齐 | 底部对齐 | 居中对齐 | 上下对齐并铺满 | 文本基线对齐*/ } 兼容写法 1. 首先是定义容器的 display 属性: .box{ display: -webkit-box; /* 老版本语法: Safari, iOS, Android browser, older WebKit browsers. */ display: -moz-box; /* 老版本语法: Firefox (buggy) */ display: -ms-flexbox; /* 混合版本语法: IE 10 */ display: -webkit-flex; /* 新版本语法: Chrome 21+ */ display: flex; /* 新版本语法: Opera 12.1, Firefox 22+ */ }这里还要注意的是,如果子元素是行内元素,在很多情况下都要使用 display:block 或 display:inline-block把行内子元素变成块元素(例如使用 box-flex 属性),这也是旧版语法和新版语法的区别之一。
2. 子元素主轴对齐方式(水平居中对齐) .box{ -webkit-box-pack: center; -moz-justify-content: center; -webkit-justify-content: center; justify-content: center; }兼容写法新版语法的 space-around 是不可用的:如下新版语法space-around;
.box{ box-pack: start | end | center | justify; /*主轴对齐:左对齐(默认) | 右对齐 | 居中对齐 | 左右对齐*/ justify-content: flex-start | flex-end | center | space-between | space-around; /*主轴对齐方式:左对齐(默认) | 右对齐 | 居中对齐 | 两端对齐 | 平均分布*/ } 3. 子元素交叉轴对齐方式(垂直居中对齐) .box{ box-align: start | end | center | baseline | stretch; /*交叉轴对齐:顶部对齐(默认) | 底部对齐 | 居中对齐 | 文本基线对齐 | 上下对齐并铺满*/ align-items: flex-start | flex-end | center | baseline | stretch; /*交叉轴对齐方式:顶部对齐(默认) | 底部对齐 | 居中对齐 | 上下对齐并铺满 | 文本基线对齐*/ } 4. 子元素的显示方向。
子元素的显示方向可通过 box-direction + box-orient + flex-direction 实现,如下代码: