2009年,W3C 提出了一种新的方案 Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。
浏览器支持:IE10 F22 C21 O12.1 S6.1
教程参考:
- Flex 布局教程:语法篇 - 阮一峰
- 一个完整的Flexbox指南
- 理解 Flexbox:你需要知道的一切
- Flexbox 布局的正确使用姿势
- Flex布局新旧混合写法详解(兼容微信)
父元素设置
.parent{
/* 旧版 */
display:-moz-box; /* 兼容 Firefox */
display:-webkit-box; /* 兼容 Chrome,Safari */
display:box; /* 或者 inline-block */
/* 新版 */
display:-webkit-flex;
display:flex; /* 移动端部分机型不支持? */
/* 新版行内flex */
display:-webkit-inline-flex; /* webkit */
display:inline-flex;
/* 兼容写法 */
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+ */
/* 主轴方向 */
/* 旧版 */
-webkit-box-orient:horizontal; /* vertical */
/* 新版 */
flex-direction: row | row-reverse | column | column-reverse;
/*主轴方向:左到右(默认) | 右到左 | 上到下 | 下到上*/
/* 兼容写法 */
/* 子元素的显示方向可通过 box-direction + box-orient + flex-direction 实现 */
/* 左到右 */
-webkit-box-direction: normal;
-webkit-box-orient: horizontal;
-moz-flex-direction: row;
-webkit-flex-direction: row;
flex-direction: row;
/* 右到左 */
-webkit-box-pack: end;
-webkit-box-direction: reverse;
-webkit-box-orient: horizontal;
-moz-flex-direction: row-reverse;
-webkit-flex-direction: row-reverse;
flex-direction: row-reverse;
/* 上到下 */
-webkit-box-direction: normal;
-webkit-box-orient: vertical;
-moz-flex-direction: column;
-webkit-flex-direction: column;
flex-direction: column;
/* 下到上 */
-webkit-box-pack: end;
-webkit-box-direction: reverse;
-webkit-box-orient: vertical;
-moz-flex-direction: column-reverse;
-webkit-flex-direction: column-reverse;
flex-direction: column-reverse;
/* 主轴富余空间管理(水平对齐) */
box-pack: start | end | center | justify;
/*主轴对齐:左对齐(默认) | 右对齐 | 居中对齐 | 左右对齐*/
justify-content: flex-start | flex-end | center | space-between | space-around;
/*主轴对齐方式:左对齐(默认) | 右对齐 | 居中对齐 | 两端对齐 | 平均分布*/
/* 侧轴富余空间管理(垂直对齐) */
box-align: start | end | center | baseline | stretch;
/*交叉轴对齐:顶部对齐(默认) | 底部对齐 | 居中对齐 | 文本基线对齐 | 上下对齐并铺满*/
align-items: flex-start | flex-end | center | baseline | stretch;
/*交叉轴对齐方式:顶部对齐(默认) | 底部对齐 | 居中对齐 | 上下对齐并铺满 | 文本基线对齐*/
}
- 设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。
子元素设置
.children{
/* 旧版 */
-moz-box-flex:1.0; /* Firefox */
-webkit-box-flex:1.0; /* Safari, Opera, Chrome */
box-flex:1.0;
/* 新版 */
flex-grow:1;
/* 定义子元素的显示次序,数值越小越排前 */
/* 旧版 */
-moz-box-ordinal-group: 1; /* Firefox */
-webkit-box-ordinal-group: 1; /* Safari, Opera, Chrome */
box-ordinal-group: 1;
/* 新版 */
order:1;
/* 兼容写法 */
-webkit-box-ordinal-group:1;
-moz-order:1;
-webkit-order:1;
order:1;
}
您的赞助将会支持作者创作及本站运维
发表评论