整 理:晋 哲 时 间:2017-01-06 说 明:使用弹性布局,设置自适应布局、水平垂直居中等样式
弹性布局很早就出来了,但之前一直没有使用Flexbox主要还是考虑兼容性,且兼容性写法太冗余。目前,旧版的属性都已被重新修改,所有浏览器的兼容性也得到很大支持,移动端可以放心使用了,当然浏览器前缀还是要加上的。
能够被运用到的布局结构,如响应式布局、选项卡分布、水平垂直居中等,优先考虑使用flex,代替之前一些特殊布局所使用的传统解决方案:使用display属性或position属性或float属性。
flex常用属性
display:将元素设置为内联或者块flexbox容器元素 flex:复合属性。设置或检索弹性盒模型对象的子元素如何分配空间。 justify-content:控制flex容器内item的水平对齐方式 align-items:控制flex容器内item的垂直对齐方式 flex-direction:定义弹性盒子元素的排列方向
其属性值:
display:flex | inline-flex flex:none | < flex-grow > | < flex-shrink > | < flex-basis > justify-content:flex-start | flex-end | center | space-between | space-around align-items: flex-start | flex-end | center | baseline | stretch flex-direction:row | row-reverse | column | column-reverse
常见用法:
一、自适应布局
<!-- HTML --> <div class="box"> <div class="subnav"></div> <div class="content"></div> </div> <!-- CSS --> .box{ display: -webkit-box; display: -webkit-flex; display: flex; } .subnav{ width: 100px; height: 100px; background: #000; } .content{ background: #f60; -webkit-box-flex: 1; -webkit-flex: 1; flex: 1; } 解释:subnav固定宽度,content自适应撑满剩余空间
二、使用 Flexbox 的水平垂直居中布局
<!-- HTML --> <div class="box"> <div class="content"></div> </div> <!-- CSS --> .box{ height: 200px; background: #eee; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; -webkit-justify-content: center; justify-content: center; } .content{ width: 100px; height: 100px; background: #f60; }