css3弹性盒子模型之box-flex
来源:互联网 发布:英雄382美工钢笔 编辑:程序博客网 时间:2024/04/30 11:45
今天看到蓝色理想上面有一篇文章讲《css3弹性盒模型布局模块介绍》里面讲到用box-flex,突然觉得有点心慌,上次看到响应式网页设计里面也同样讲到flex box自适应布局,而上次竟然没有引起自己的注意,想深入研究一下,竟然给忘记了,于是就在这种不断的忘记中彻底变成outer。今天借此机会,好好充电一下,看了adou写的关于box-flex的文章,发现里面存在一些问题,冒昧更正了一下,如有不妥还请大家指正。
box-flex是css3新添加的盒子模型属性,它的出现打破了我们经常使用的浮动布局,实现垂直等高、水平均分、按比例划分。但是它有一定的局限性,在firefox、chrome这浏览器下需要使用它们的私有属性来定义:firefox(-moz)、chrome(-webkit)。
一、box-flex属性
box-flex主要让子容器针对父容器的宽度按一定规则进行划分。
<div class="box"><div class="col_1">111</div><div class="col_2">222</div><div class="col_3">333</div></div>
<style type="text/css">.box {display:box;display:-webkit-box;display:-moz-box;background-color:#fff;width:500px;height:100px;border:1px solid #333;margin:0 auto;}.col_1 {box-flex:1;-moz-box-flex:1;-webkit-box-flex:1;background-color:#ffc;}.col_2 {background-color:#ccf;box-flex:2;-moz-box-flex:2;-webkit-box-flex:2;}.col_3 {background-color:#fcf;box-flex:2;-moz-box-flex:2;-webkit-box-flex:2;}</style>
注意:
父容器必须定义为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)。
以上是按比例数来进行划分的,如果其中一个或多个子容器设置了固定宽度,其它子容器没有设置,那么设置宽度的按宽度来算,剩下的部分再按上面的方法来计算。
.col_3 {background-color:#fcf;width:50px;/*设置宽度为50px*/}
当子容器中需要有间隔的时候,他们平分的宽度需要减去中间的margin,然后再按比例平分。
.col_2 {background-color:#ccf;box-flex:2;-moz-box-flex:2;-webkit-box-flex:2;margin:0 20px;}
二、box属性
box-orient, box-direction, box-align, box-pack, box-lines
horizontal | vertical | inline-axis | block-axis | inherit
.col_1 {height:50px;}.col_2 {height:80px;}
如果你容器不设置高度,子容器的高度值才生效,在firefox下面他们的高度取其中的最大值。而chrome下面设置高度的子容器为自己的高度,未设置的其高度和最大值的高度一样,其实就是和父容器的高度一致。
.box {/*未设置高度*/}.col_1 {height:50px;}.col_2 {height:80px;}.col_3 {/*未设置高度*/}
vertical和block-axis属性效果表现一致,都可将子容器垂直排列。他们是对父容器的高度进行分配。如果子容器设置了宽度,也是谷歌下面有效,火狐无效,其它都与horizontal表现一致。
2、box-direction
box-direction用来确定父容器里面的子容器排列顺序,具有以下属性:
normal | reverse | inherit
normal是默认值,如上面测试结果。
reverse表示反转,其表现方式跟normal相反,呈现为3、2、1
3、box-align
box-align表示父容器里面子容器的垂直对齐方式,属性值为:
start | end | center | baseline | stretch
start、baseline展示效果
end展示效果
center展示效果
stretch展示效果,(谷歌下面如start)
4、box-pack
box-pack表示父容器里面子容器的水平对齐方式,可选参数如下所示:
start | end | center | justify
css代码
.box {display:box;display:-webkit-box;display:-moz-box;background-color:#fff;width:500px;border:1px solid #333;margin:0 auto;height:100px;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;}.col_1,.col_2,.col_3{width:100px;}
start:在box-pack表示水平居左对齐,如下所示:
end:在box-pack表示水平居右对齐,如下图所示
center:在box-pack表示水平居中对齐,如下图所示
justify:在box-pack表示两边对齐试(firefox不支持,它保持默认效果),如下图所示
- css3弹性盒子模型之box-flex
- css3弹性盒子模型之box-flex
- css3弹性盒子模型之box-flex
- css3弹性盒子模型之box-flex
- CSS3: box-flex (弹性盒子模型)
- CSS3--弹性盒子(Flex Box)
- CSS3 弹性盒子(Flex Box)
- CSS3 弹性盒子(Flex Box)
- css3弹性盒子模型 flex与box 菜鸟学习笔记
- CSS3弹性盒模型之box-flex
- 弹性盒子模型 box-flex
- css3弹性盒子模型之box-flex(修正版一)
- css3中 弹性盒模型布局之box-flex
- css3盒子布局-定义盒子的弹性空间(box-flex)
- css3弹性盒子模型display:flex
- CSS3弹性盒子flex
- 移动端布局 Css3 弹性盒子模型封装 display:box;
- css3 弹性盒子模型
- mysql在数据库表中,使用索引可以大大提高查询速度
- 设计模式的五大原则
- 12279 - Emoogle Balance
- 程序员 工作新电脑 初始配置
- asp.net夜话之五:Page类和回调技术
- css3弹性盒子模型之box-flex
- 6.9 MySQL 查询缓存详解
- 软件测试中涉及的英语
- windows 安装python
- 快速排序程序
- 算法导论-第4章
- 如何制作优盘启动盘
- Oracle 11g Data Guard Role Transitions: Failover
- SQL Server 2008 安装、配置、连接JDBC全过程详解