box-flex

語法:

box-flex<number>

默認值0

取值:

<number>
使用浮點數指定對象所分配其父元素剩余空間的比例。

說明:

設置或檢索彈性盒模型對象的子元素如何分配其剩余空間。
  • 示例:將一個容器分成6份,子對象a分1份,b分2份,c分3份

    HTML Code:

    <ul id="box">
    
    	<li>a</li>
    
    	<li>b</li>
    
    	<li>c</li>
    
    </ul>

    CSS Code:

    #box{display:box;width:240px;height:100px;margin:0;padding:10px;list-style:none;}
    
    #box li:nth-child(1){box-flex:1;}
    
    #box li:nth-child(2){box-flex:1;}
    
    #box li:nth-child(3){box-flex:2;}

    上面代碼請自行加上-moz-,-webkit-之類的。box-flex生效需定義其父元素display爲box或inline-box

  • 误区:注意box-flex只是动态分配父元素的剩余空间,而不是整个父元素的空间。如上例,父元素#box的宽度为240px,如果你认为a,b,c的宽度分别为60, 60, 120那么就错了,因为box-flex只是分配父元素的剩余空间而已,所以a,b,c所分到的应该是除内容外所剩余下来的宽度
  • 为了清晰所谓的剩余空间分配,对上例稍作修改,HTML Code不变

    CSS Code:

    #box{display:box;width:240px;height:100px;margin:0;padding:10px;list-style:none;}
    
    .box li{width:50px;padding:7px;}
    
    #box li:nth-child(1){box-flex:1;}
    
    #box li:nth-child(2){box-flex:1;}
    
    #box li:nth-child(3){box-flex:2;}

    從上面的代碼,我們可以知道a,b,c的寬度分別爲50+7*2=64px,三者加起來即192px,所以剩下的240-192=48px才是父元素的剩余空間,于是a,b,c按照設定的1:1:2來分配這48px,a分得12px,b分得12px,c分得24px,所以最終a=64+12=76px,b=64+12=76px,c=64+24=88px

  • 對應的腳本特性爲boxFlex

兼容性:

  • 淺綠 = 支持
  • 紅色 = 不支持
  • 墨綠 = 部分支持
  • 橙色 = 实验性质
支持版本\類型 IE Firefox Safari Chrome Opera
較早版本 6.0-9.0 4.0-9.0 5.1 13.0-16.0 11.50-11.60
較新版本 10.0

示例: