flex-shrink

語法:

flex-shrink<number>

預設值1

適用於:flex子項

繼承性:無

動畫性:是

計算值:指定值

取值:

<number>
用數值來定義收縮比率。不允許負值

說明:

設定或檢索彈性盒的收縮比率。
  • 根據彈性盒子元素所設定的收縮因子作為比率來收縮空間。
  • 示例:a,b,c將按照1:1:3的比率來收縮空間

    HTML Code:

    <ul class="flex"> <li>a</li> <li>b</li> <li>c</li> </ul> .flex{display:flex;width:400px;margin:0;padding:0;list-style:none;} .flex li{width:200px;} .flex li:nth-child(3){flex-shrink:3;}

    flex-shrink的預設值為1,如果沒有顯示定義該屬性,將會自動按照預設值1在所有因子相加之後計算比率來進行空間收縮。

    本例中c顯式的定義了flex-shrink,a,b沒有顯式定義,但將根據預設值1來計算,可以看到總共將剩餘空間分紅了5份,其中a占1份,b占1份,c占3分,即1:1:3

    我們可以看到父容器定義為400px,子項被定義為200px,相加之後即為600px,超出父容器200px。那麼這麼超出的200px需要被a,b,c消化

    通過收縮因子,所以加權綜合可得200*1+200*1+200*3=1000px;
    於是我們可以計算a,b,c將被移除的溢出量是多少:
    a被移除溢出量:(200*1/1000)*200,即約等於40px
    b被移除溢出量:(200*1/1000)*200,即約等於40px
    c被移除溢出量:(200*3/1000)*200,即約等於120px
    最後a,b,c的實際寬度分別為:200-40=160px, 200-40=160px, 200-120=80px

  • 對應的腳本特性為flexGrow

兼容性:

  • 淺綠 = 支援
  • 紅色 = 不支援
  • 粉色 = 部分支援
Values IE Firefox Chrome Safari Opera iOS Safari Android Browser Android Chrome
Basic Support 6.0-10.0 2.0-21.0 4.0-20.0 6.0 15.0+-webkit- 6.0-6.1 2.1-4.3 18.0-19.0
11.0+ 22.0+ 21.0+-webkit- 6.1+-webkit- 17.0+ 7.0+-webkit- 4.4+ 20.0+-webkit-
29.0+ 9.0+ 9.0+ 28.0+

示例:

本頁最後更新時間:

2015.7.29