首页 > 开发 > CSS > 正文

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

2024-07-11 08:32:49
字体:
来源:转载
供稿:网友

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

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

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

201669113611192.jpg (515×114)

注意:
父容器必须定义为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)。
以上是按比例数来进行划分的,如果其中一个或多个子容器设置了固定宽度,其它子容器没有设置,那么设置宽度的按宽度来算,剩下的部分再按上面的方法来计算。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表