好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

CSSbox-flex属性,然后弹性盒子模型简介_html/css_WEB-ITnose

一、here we go

看到大神写的关于box-flex的介绍,忍不住收了,大神介绍的很详细,新技能get!

二、box-flex属性(和谐版)

有道桌面词典显示,”flex”一词中文有“收缩”之意。不过,从此属性实际上产生的效果来看,无论怎样用“收缩”一词解释都显得很牵强。所以,这 里,直接抛开字面意思,我们可以将”box-flex”理解为”房子-分配”。box为“盒子”的意思,我们可以理解为当下价格巨高的“房 子”,”flex”指兄弟几个“分配房子”。

举个更实际点的例子:马林大叔省吃俭用一辈子,终于在上海郊外买了间150平米的商品房。后来,马林大叔想回老家养老,决定把房子分配给他的三个儿 子。ok,先暂停下,这里提到的“房子”就是”box-flex”中的”box”,“分配”就是”box-flex”中的”flex”,于是,这个“分配 房子”的举动就称为”box-flex”,而box-flex属性的值就是说的如何分配,分配比例是什么。oK,继续我们的例子,马林大叔的三个儿子分别 叫做大马,中马和小马,其中大马已经结婚多年,有一堆双胞胎女儿,拖家带口的人多;而中马和小马是优秀的光棍人士。所以,大马要求分配更多的房子,最终, 家人一番协商有了下面的分配结果,就是:

#大马 { 房子-分配: 2; }#中马 { 房子-分配: 1; }#小马 { 房子-分配: 1; } 

我想,上面的分配应该很容易看懂的。房子分成了总共4份,其中有家室的大马分得其中的两份,而为国家省橡胶的中马和小马每人分得其中一份,于是用数值换算就是:
大马 = 150 * (2 / (2+1+1)) = 75(平米);
中马 = 150 * (1 / (2+1+1)) = 37.5(平米);
小马 = 150 * (1 / (2+1+1)) = 37.5(平米);

如果装换成CSS表示就是:

#first_boy { box-flex: 2; }#second_boy { box-flex: 1; }#three_boy { box-flex: 1; } 

哇咔咔,box-flex的含义与作用理解瞬间柳暗花明:用来按比例分配父标签的宽度(或高度)空间。

box-flex的值为至少为1的整数时起作用。但是,仅仅一个box-flex属性是不足以实现子元素间的空间分配,因为还要看其老爸的意思。所谓,我爸是李刚,撞人很嚣张;恨爸不是刚,撞人心慌慌。只有老爸开口说:“这个房子现在你们随意分配。”其子女才能分配。

所以,父元素也是需要添加必要的声明的。此声明就是:

#father { display: box; } 

似乎也可以是:

#father { display: inline-box; } 

此声明好像是在说:孩子们,现在我把这个房子变成了可随意分配状态,非固定财产,你们可以自己协商分配了。
display: box;的声明其实就是弹性盒子模型的声明,此声明下的子元素的行为与表现与CSS2中的传统盒子模型的表现是有显著的差异的。

毕竟属于CSS3的东西,目前而言,仅Firefox/Chrome/Safari浏览器支持弹性盒子模型(IE9不详,Opera尚未),且使用的时候,需要附带私有前缀。就是诸如-moz-, -webkit-之类。

CSS实例
现在把上面的马林分房子的例子CSS实例化,看看在web页面上是个如何的表现://zxx:有把小说拍成电影的感觉,

主要CSS代码如下:

.test_box {    display: -moz-box;     display: -webkit-box;     display: box;         ... }.list {   ...}.list_one {    -moz-box-flex: 1;     -webkit-box-flex: 1;     box-flex: 1;}.list_two{    -moz-box-flex: 2;     -webkit-box-flex: 2;     box-flex: 2;} 

HTML代码如下:

1

查看更多关于CSSbox-flex属性,然后弹性盒子模型简介_html/css_WEB-ITnose的详细内容...

  阅读:33次