弹性盒布局(Flexible Box)可以轻松地创建响应式网页布局,为盒状(块)模型增加灵活性。弹性盒
改进了块模型,既不使用浮动,也不会在弹性盒容器与其内容之间合并外边距,是一种非常灵活的布局方法,就像在一个大盒子里摆放的几个小盒子,相对独立,容易设置。首先,看一下弹性盒的结构,如图10-11所示。
图10-11 弹性盒结构 |
从图10-11可以看出,弹性盒由容器、子元素和轴构成,并且默认情况下,子元素的排布方向与横轴的方向是一致的。弹性盒模型可以用简单的方
式满足很多常见的复杂的布局需求。它的优势在于开发人员只是生明布局应该具有的行为,
而不需要给出具体的实现方式。浏览器会负责完成实际的布局。该布局模型几乎在主流浏览器中都得到了支持,如表10-1所示。
表10-1 浏览器支持情况
IOS Safari | Android Browser | IE | Opera | Chrome | Firefox |
7.0+ | 4.4+ | 11+ | 12.1+ | 21+ | 22+ |
下面通过一个案例来演示弹性盒控制布局的各个属性的应用,如demo10-3.html所示。
demo10-3.html
01 <!DOCTYPE html> 02 <html lang="en"> 03 <head> 04 <meta charset="utf-8" /> 05 <title>弹性盒子属性</title> 06 </head> 07 <style type="text/css"> 08 .box{ 09 min-height: 160px; 10 display: flex; /*指定弹性盒的容器*/ 11 /* 12 flex - direction:row|row-reverse|column|column-reverse; 13 flex - wrap: nowrap|wrap|wrap-reverse; 14 */ 15 flex-flow: row; /*弹性盒子元素按横轴方向顺序排列*/ 16 justify-content: center; /*设置弹性盒子元素向行中间位置对齐*/ 17 align-items: center; /*弹性盒子元素向垂直于轴的方向上的中间位置对齐*/ 18 background-color: gray; 19 } 20 .A,.B,.C { 21 background-color: white; 22 border: 1px solid gray; 23 } 24 .box div.A{ 25 order: 1; /*order设置该子元素出现的顺序*/ 26 flex-grow: 0; /*扩展比率*/ 27 flex-shrink: 1; /*收缩比率*/ 28 flex-basis: auto; /*宽度,像素值*/ 29 } 30 .box div.B{ 31 order: 2; 32 flex: 0 1 auto; /*扩展比率0,收缩比率1和宽度居中的缩写形式*/ 33 } 34 .box div.C{ 35 order: 3; 36 flex: 0 1 auto; 37 } 38 </style> 39 <body> 40 <div class="box"> 41 <div class="A">A</div> 42 <div class="B">B</div> 43 <div class="C">C</div> 44 </div> 45 </body> 46 </html> |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论