实例讲解CSS3中的box-flex弹性盒属性布局


Posted in HTML / CSS onJune 09, 2016

box-flex是css3新添加的盒子模型属性,它的出现打破了我们经常使用的浮动布局,实现垂直等高、水平均分、按比例划分。但是它有一定的局限性,在firefox、chrome这浏览器下需要使用它们的私有属性来定义:firefox(-moz)、chrome(-webkit)。

一、box-flex属性
box-flex主要让子容器针对父容器的宽度按一定规则进行划分。

CSS Code复制内容到剪贴板
  1. <div class="box">   
  2.  <div class="col_1">111</div>   
  3.  <div class="col_2">222</div>   
  4.  <div class="col_3">333</div>   
  5. </div>   
  6. <style type="text/css">   
  7. .box {   
  8.  display:box;   
  9.  display:-webkit-box;   
  10.  display:-moz-box;   
  11.  background-color:#fff;   
  12.  width:500px;   
  13.  height:100px;   
  14.  border:1px solid #333;   
  15.  margin:0 auto;   
  16. }   
  17. .col_1 {   
  18.  box-flex:1;   
  19.  -moz-box-flex:1;   
  20.  -webkit-box-flex:1;   
  21.  background-color:#ffc;   
  22. }   
  23. .col_2 {   
  24.  background-color:#ccf;   
  25.  box-flex:2;   
  26.  -moz-box-flex:2;   
  27.  -webkit-box-flex:2;   
  28. }   
  29. .col_3 {   
  30.  background-color:#fcf;   
  31.  box-flex:2;   
  32.  -moz-box-flex:2;   
  33.  -webkit-box-flex:2;   
  34. }   
  35. </style>  

实例讲解CSS3中的box-flex弹性盒属性布局

注意:
父容器必须定义为display:box,其子容器才可以进行划分(如果定了display:box则该容器为内联元素,使用margin:0 auto让其居中在firefox下无效,需要通过父容器的text-align:center;来控制。但在chrome下是可以的)
上面所讲到的例子中,三个子块分别设置了1、2、2,也就是把这个父容器分成5份,分别占据了父结构宽度的1/5(100px)、2/5(200px)、2/5(200px)。
以上是按比例数来进行划分的,如果其中一个或多个子容器设置了固定宽度,其它子容器没有设置,那么设置宽度的按宽度来算,剩下的部分再按上面的方法来计算。

CSS Code复制内容到剪贴板
  1. .col_3 {   
  2.  background-color:#fcf;   
  3.  width:50px;/*设置宽度为50px*/  
  4. }  

实例讲解CSS3中的box-flex弹性盒属性布局

当子容器中需要有间隔的时候,他们平分的宽度需要减去中间的margin,然后再按比例平分。

CSS Code复制内容到剪贴板
  1. .col_2 {   
  2.  background-color:#ccf;   
  3.  box-flex:2;   
  4.  -moz-box-flex:2;   
  5.  -webkit-box-flex:2;   
  6.  margin:0 20px;   
  7. }  

实例讲解CSS3中的box-flex弹性盒属性布局

二、box属性
上面讲到的是如何将box-flex如何对父容器的宽度进行划分,现在来说一下父容器里面的box属性包括哪些。
box-orient, box-direction, box-align, box-pack, box-lines
1、box-orient
box-orient用来确定父容器里子容器的排列方式是水平还是垂直,可选属性如下:
horizontal | vertical | inline-axis | block-axis | inherit
horizontal和inline-axis属性其效果表现一致,都可以将容器水平排列,在默认情况下也呈现水平排列的样式。当父容器设置高度时,在firefox下面其子容器的高度无效,但chroma下面则有效。

CSS Code复制内容到剪贴板
  1. .col_1 {   
  2.  height:50px;   
  3. }   
  4. .col_2 {   
  5.  height:80px;   
  6. }  

实例讲解CSS3中的box-flex弹性盒属性布局

如果你容器不设置高度,子容器的高度值才生效,在firefox下面他们的高度取其中的最大值。而chrome下面设置高度的子容器为自己的高度,未设置的其高度和最大值的高度一样,其实就是和父容器的高度一致。

CSS Code复制内容到剪贴板
  1. .box {   
  2.  /*未设置高度*/  
  3. }   
  4. .col_1 {   
  5.  height:50px;   
  6. }   
  7. .col_2 {   
  8.  height:80px;   
  9. }   
  10. .col_3 {   
  11.  /*未设置高度*/  
  12. }  

实例讲解CSS3中的box-flex弹性盒属性布局实例讲解CSS3中的box-flex弹性盒属性布局

vertical和block-axis属性效果表现一致,都可将子容器垂直排列。他们是对父容器的高度进行分配。如果子容器设置了宽度,也是谷歌下面有效,火狐无效,其它都与horizontal表现一致。
实例讲解CSS3中的box-flex弹性盒属性布局实例讲解CSS3中的box-flex弹性盒属性布局

2、box-direction
box-direction用来确定父容器里面的子容器排列顺序,具有以下属性:
normal | reverse | inherit
normal是默认值,如上面测试结果。
reverse表示反转,其表现方式跟normal相反,呈现为3、2、1
实例讲解CSS3中的box-flex弹性盒属性布局

3、box-align
box-align表示父容器里面子容器的垂直对齐方式,属性值为:
start | end | center | baseline | stretch
start、baseline展示效果
实例讲解CSS3中的box-flex弹性盒属性布局

end展示效果
实例讲解CSS3中的box-flex弹性盒属性布局

center展示效果
实例讲解CSS3中的box-flex弹性盒属性布局

stretch展示效果,(谷歌下面如start)
实例讲解CSS3中的box-flex弹性盒属性布局

4、box-pack
box-pack表示父容器里面子容器的水平对齐方式,可选参数如下所示:
start | end | center | justify
css代码

CSS Code复制内容到剪贴板
  1. .box {   
  2.  display:box;   
  3.  display:-webkit-box;   
  4.  display:-moz-box;   
  5.  background-color:#fff;   
  6.  width:500px;   
  7.  border:1px solid #333;   
  8.  margin:0 auto;   
  9.  height:100px;   
  10.  -webkit-box-pack:start;   
  11.  -moz-box-pack:start;   
  12.  box-pack:start;   
  13. }   
  14. .col_1,.col_2,.col_3{   
  15.  width:100px;   
  16. }  

start:在box-pack表示水平居左对齐,如下所示:
实例讲解CSS3中的box-flex弹性盒属性布局

end:在box-pack表示水平居右对齐,如下图所示
实例讲解CSS3中的box-flex弹性盒属性布局

center:在box-pack表示水平居中对齐,如下图所示
实例讲解CSS3中的box-flex弹性盒属性布局

justify:在box-pack表示两边对齐试

HTML / CSS 相关文章推荐
css3实现背景颜色渐变让图片不再是唯一的实现方式
Dec 18 HTML / CSS
纯CSS3实现地球自转实现代码(图文教程附送源码)
Dec 26 HTML / CSS
css3 position fixed固定居中问题解决方案
Aug 19 HTML / CSS
css3实现3D色子翻转特效
Dec 23 HTML / CSS
css3学习系列之移动属性详解
Jul 04 HTML / CSS
CSS3田字格列表的样式编写方法
Nov 22 HTML / CSS
Html5页面在微信端的分享的实现方法
Aug 30 HTML / CSS
关于HTML5你必须知道的28个新特性,新技巧以及新技术
May 28 HTML / CSS
基于IE10/HTML5 开发
Apr 22 HTML / CSS
HTML5注册表单的自动聚焦与占位文本示例代码
Jul 19 HTML / CSS
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
Apr 24 HTML / CSS
浅析CSS在DevTools 中架构演变
Oct 05 HTML / CSS
详解CSS3的图层阴影和文字阴影效果使用
Jun 09 #HTML / CSS
CSS3制作漂亮的照片墙的实现代码
Jun 08 #HTML / CSS
使用CSS3中的calc()属性来以算式表达尺寸数值
Jun 06 #HTML / CSS
浅析css3中matrix函数的使用
Jun 06 #HTML / CSS
CSS3 animation实现逐帧动画效果
Jun 02 #HTML / CSS
利用CSS3的线性渐变linear-gradient制作边框的示例
Jun 02 #HTML / CSS
移动端Web页面的CSS3 flex布局快速上手指南
May 31 #HTML / CSS
You might like
定制404错误页面,并发信给管理员的程序
2006/10/09 PHP
php开启安全模式后禁用的函数集合
2011/06/26 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
PHP中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
jQuery事件详解
2017/02/23 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
关于vue-resource报错450的解决方案
2017/07/24 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
酒吧创业计划书
2014/01/18 职场文书
党员目标管理责任书
2014/07/25 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
2014国庆65周年领导讲话稿(3篇)
2014/09/21 职场文书
给领导的感谢信范文
2015/01/23 职场文书