box-flex

語法:

box-flex<number>

預設值0

適用於:伸縮盒子元素

繼承性:無

動畫性:否

計算值:指定值

取值:

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

說明:

設定或檢索伸縮盒物件的子元素如何分配其剩餘空間。
  • 效果類似於轉場版本和新版本的flex屬性;
  • 示例:將一個容器分紅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

兼容性:

  • 淺綠 = 支援
  • 紅色 = 不支援
  • 粉色 = 部分支援
Values IE Firefox Chrome Safari Opera iOS Safari Android Browser Android Chrome
Basic Support 6.0-11.0 2.0-40.0-moz- 4.0-45.0-webkit- 6.0-8.0-webkit- 15.0-29.0-webkit- 6.0-8.3-webkit- 2.1-4.4.4-webkit- 18.0-42.0-webkit-

示例: