CSS flex-shrink 屬性
實例
A, B, C 設置 flex-shrink:1, D , E 設置為 flex-shrink:2:
實例解析:
flex-shrink的默認值為1,如果沒有顯示定義該屬性,將會自動按照默認值1在所有因數相加之後計算比率來進行空間收縮。
本例中A、B、C 顯式定義了 flex-shrink 為 1,D、E 定義了 flex-shrink 為 2,所以計算出來總共將剩餘空間分成了 7 份,其中 A、B、C 占 1 份,D、E 占 2 份,即1:1:1:2:2
我們可以看到父容器定義為 500px,子項被定義為 120px,子項相加之後即為 600 px,超出父容器 100px。那麼超出的 100px 需要被 A、B、C、D、E 消化 通過收縮因數,所以加權綜合可得 100*1+100*1+100*1+100*2+100*2=700px。
於是我們可以計算 A、B、C、D、E 將被移除的溢出量是多少:A 被移除溢出量:(100*1/700)*100,即約等於14px B 被移除溢出量:(100*1/700)*100,即約等於14px C 被移除溢出量:(100*1/700)*100,即約等於14px D 被移除溢出量:(100*2/700)*100,即約等於28px E 被移除溢出量:(100*2/700)*100,即約等於28px
最後A、B、C、D、E的實際寬度分別為:120-14=106px, 120-14=106px, 120-14=106px, 120-28=92px,120-28=92px,此外,這個寬度是包含邊框的。
流覽器支持
表格中的數字表示支持該屬性的第一個流覽器的版本號。
緊跟在 -webkit-, -ms- 或 -moz- 後的數字為支持該首碼屬性的第一個版本。
屬性 | |||||
---|---|---|---|---|---|
flex-shrink | 29.0 21.0 -webkit- |
11.0 10.0 -ms- |
28.0 18.0 -moz- |
9.0 6.1 -webkit- |
17.0 |
定義和用法
flex-shrink 屬性指定了 flex 元素的收縮規則。flex 元素僅在默認寬度之和大於容器的時候才會發生收縮,其收縮的大小是依據 flex-shrink 的值。
注意:如果元素不是彈性盒對象的元素,則 flex-shrink 屬性不起作用。
默認值: | 1 |
---|---|
繼承: | 否 |
可動畫化: | 是。請參閱 可動畫化(animatable)。 |
版本: | CSS3 |
JavaScript 語法: | object.style.flexShrink="5" |
CSS 語法
屬性值
值 | 描述 |
---|---|
number | 一個數字,規定專案將相對於其他靈活的專案進行收縮的量。默認值是 1。 |
initial | 設置該屬性為它的默認值。請參閱 initial。 |
inherit | 從父元素繼承該屬性。請參閱 inherit。 |
相關文章
CSS 參考手冊:flex 屬性
CSS 參考手冊:flex-basis 屬性
CSS 參考手冊:flex-direction 屬性
CSS 參考手冊:flex-flow 屬性
CSS 參考手冊:flex-grow 屬性
CSS 參考手冊:flex-wrap 屬性