A, B, C 設(shè)置 flex-shrink:1, D , E 設(shè)置為 flex-shrink:2:
實(shí)例解析:
flex-shrink的默認(rèn)值為1,如果沒有顯示定義該屬性,將會自動按照默認(rèn)值1在所有因子相加之后計(jì)算比率來進(jìn)行空間收縮。
本例中A、B、C 顯式定義了 flex-shrink 為 1,D、E 定義了 flex-shrink 為 2,所以計(jì)算出來總共將剩余空間分成了 7 份,其中 A、B、C 占 1 份,D、E 占 2 份,即1:1:1:2:2
我們可以看到父容器定義為 500px,子項(xiàng)被定義為 120px,子項(xiàng)相加之后即為 600 px,超出父容器 100px。那么超出的 100px 需要被 A、B、C、D、E 消化通過收縮因子,所以加權(quán)綜合可得 100*1+100*1+100*1+100*2+100*2=700px。
于是我們可以計(jì)算 A、B、C、D、E 將被移除的溢出量是多少:A 被移除溢出量:(100*1/700)*100,即約等于14pxB 被移除溢出量:(100*1/700)*100,即約等于14pxC 被移除溢出量:(100*1/700)*100,即約等于14pxD 被移除溢出量:(100*2/700)*100,即約等于28pxE 被移除溢出量:(100*2/700)*100,即約等于28px
最后A、B、C、D、E的實(shí)際寬度分別為:120-14=106px, 120-14=106px, 120-14=106px, 120-28=92px,120-28=92px,此外,這個(gè)寬度是包含邊框的。
表格中的數(shù)字表示支持該屬性的第一個(gè)瀏覽器的版本號。
緊跟在 -webkit-, -ms- 或 -moz- 后的數(shù)字為支持該前綴屬性的第一個(gè)版本。
屬性 | |||||
---|---|---|---|---|---|
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)寬度之和大于容器的時(shí)候才會發(fā)生收縮,其收縮的大小是依據(jù) flex-shrink 的值。
注意:如果元素不是彈性盒對象的元素,則 flex-shrink 屬性不起作用。
默認(rèn)值: | 1 |
---|---|
繼承: | 否 |
可動畫化: | 是。請參閱 可動畫化(animatable)。嘗試一下 |
版本: | CSS3 |
JavaScript 語法: | object.style.flexShrink="5"嘗試一下 |
值 | 描述 |
---|---|
number | 一個(gè)數(shù)字,規(guī)定項(xiàng)目將相對于其他靈活的項(xiàng)目進(jìn)行收縮的量。默認(rèn)值是 1。 |
initial | 設(shè)置該屬性為它的默認(rèn)值。請參閱 initial。 |
inherit | 從父元素繼承該屬性。請參閱 inherit。 |