css3弹性盒子模型之box-flex

来源:互联网 发布:mac上建模软件 编辑:程序博客网 时间:2024/05/01 01:01

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>

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)。

以上是按比例数来进行划分的,如果其中一个或多个子容器设置了固定宽度,其它子容器没有设置,那么设置宽度的按宽度来算,剩下的部分再按上面的方法来计算。

.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-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下面则有效。
.col_1 { height:50px; } .col_2 { height:80px; }
谷歌浏览器显示效果如果你容器不设置高度,子容器的高度值才生效,在firefox下面他们的高度取其中的最大值。而chrome下面设置高度的子容器为自己的高度,未设置的其高度和最大值的高度一样,其实就是和父容器的高度一致。
.box { /*未设置高度*/ } .col_1 { height:50px; } .col_2 { height:80px; } .col_3 { /*未设置高度*/ }

firefox测试结果chrome测试结果vertical和block-axis属性效果表现一致,都可将子容器垂直排列。他们是对父容器的高度进行分配。如果子容器设置了宽度,也是谷歌下面有效,火狐无效,其它都与horizontal表现一致。

谷歌浏览器测试结果火狐浏览器测试结果2、box-direction

box-direction用来确定父容器里面的子容器排列顺序,具有以下属性:

normal | reverse | inherit

normal是默认值,如上面测试结果。

reverse表示反转,其表现方式跟normal相反,呈现为3、2、1

reverse显示效果3、box-align

box-align表示父容器里面子容器的垂直对齐方式,属性值为:

start | end | center | baseline | stretch

start、baseline展示效果

end展示效果

box-flex属性end展示效果center展示效果

centerstretch展示效果,(谷歌下面如start)

火狐下stretch展示

 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果充电不开机怎么办 三星note4摔黑屏怎么办 手机屏慢慢黑屏怎么办 华为手机外屏坏了怎么办 手机屏幕摔开了怎么办 iphone完全坏了怎么办 苹果屏幕盖不严怎么办 苹果手机频幕摔坏了怎么办 平板触屏不灵怎么办 小米触屏不灵怎么办 6s屏幕不灵怎么办 苹果6sp变弯后怎么办 苹果关不了机怎么办 小米手机屏幕乱点怎么办 iphone6s卡屏了怎么办 苹果手机屏幕动不了怎么办 苹果手机滑不动怎么办 升级失败白苹果怎么办 6s屏幕不准怎么办 苹果4s充不进电怎么办 苹果4sbi锁怎么办 乐视pro3充电慢怎么办 手机屏幕触碰不灵敏怎么办 手机换屏幕失灵怎么办 手机图标有重影怎么办 苹果屏幕太灵敏怎么办 5s触摸不灵敏怎么办 导航触屏失灵怎么办 汽车导航触摸屏失灵怎么办 爱丽舍导航仪触屏失灵怎么办 手机要开机很久怎么办 小米手机屏失灵怎么办 5s手机屏幕松动怎么办 手机按钮不灵了怎么办 手机触摸屏不灵了怎么办 mac触摸板失灵怎么办 苹果屏幕触摸失灵怎么办 三星手机屏幕没反应怎么办 手机开机定屏怎么办 手机触摸局部失灵怎么办 苹果手机屏幕按键失灵怎么办