CSS3 教程
A, B, C 設(shè)置 flex-shrink:1, D , E 設(shè)置為 flex-shrink:2:
實例解析:
flex-shrink的默認(rèn)值為1,如果沒有顯示定義該屬性,將會自動按照默認(rèn)值1在所有因子相加之后計算比率來進(jìn)行空間收縮。
本例中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 消化 通過收縮因子,所以加權(quán)綜合可得 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,此外,這個寬度是包含邊框的。
表格中的數(shù)字表示支持該屬性的第一個瀏覽器的版本號。
緊跟在 -webkit-, -ms- 或 -moz- 后的數(shù)字為支持該前綴屬性的第一個版本。
屬性 | |||||
---|---|---|---|---|---|
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 元素的收縮規(guī)則。flex 元素僅在默認(rèn)寬度之和大于容器的時候才會發(fā)生收縮,其收縮的大小是依據(jù) flex-shrink 的值。
注意:如果元素不是彈性盒對象的元素,則 flex-shrink 屬性不起作用。
默認(rèn)值: | 1 |
---|---|
繼承: | 否 |
可動畫化: | 是。請參閱 可動畫化(animatable)。 運(yùn)行代碼 |
版本: | CSS3 |
JavaScript 語法: | object.style.flexShrink="5" 運(yùn)行代碼 |
值 | 描述 |
---|---|
number | 一個數(shù)字,規(guī)定項目將相對于其他靈活的項目進(jìn)行收縮的量。默認(rèn)值是 1。 |
initial | 設(shè)置該屬性為它的默認(rèn)值。請參閱 initial。 |
inherit | 從父元素繼承該屬性。請參閱 inherit。 |
CSS 參考手冊:flex 屬性
CSS 參考手冊:flex-basis 屬性
CSS 參考手冊:flex-direction 屬性
CSS 參考手冊:flex-flow 屬性
CSS 參考手冊:flex-grow 屬性
CSS 參考手冊:flex-wrap 屬性
其他擴(kuò)展