非常教程

CSS 参考手册教程

CSS flex-shrink 属性

CSS flex-shrink 属性

CSS flex-shrink 属性

CSS flex-shrink 属性

CSS 参考手册


实例

A, B, C 设置 flex-shrink:1, D , E 设置为 flex-shrink:2:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>非常教程(verydoc.net)</title> <style>
#content { display: flex; width: 500px; } #content div { flex-basis: 120px; border: 3px solid rgba(0,0,0,.2); } .box { flex-shrink: 1; } .box1 { flex-shrink: 2; }
</style> </head> <body> <p>div 总宽度为 500px, flex-basic 为 120px。</p> <p>A, B, C 设置 flex-shrink:1。 D , E 设置为 flex-shrink:2</p> <p>D , E 宽度与 A, B, C 不同</p> <div id="content"> <div class="box" style="background-color:red;">A</div> <div class="box" style="background-color:lightblue;">B</div> <div class="box" style="background-color:yellow;">C</div> <div class="box1" style="background-color:brown;">D</div> <div class="box1" style="background-color:lightgreen;">E</div> </div> </body> </html>

尝试一下 »

实例解析:

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 语法

flex-shrink: number|initial|inherit;

属性值

描述
number 一个数字,规定项目将相对于其他灵活的项目进行收缩的量。默认值是 1。
initial 设置该属性为它的默认值。请参阅 initial
inherit 从父元素继承该属性。请参阅 inherit


相关文章

CSS 参考手册:flex 属性

CSS 参考手册:flex-basis 属性

CSS 参考手册:flex-direction 属性

CSS 参考手册:flex-flow 属性

CSS 参考手册:flex-grow 属性

CSS 参考手册:flex-wrap 属性


CSS flex-shrink 属性

CSS 参考手册

CSS flex-shrink 属性
CSS 参考手册

CSS 参考手册提供了完整的 CSS 属性列表,每个属性都配有语法说明及实例演示,另外还讲解了 CSS 选择器、颜色值及浏览器支持等相关内容。

CSS 参考手册目录

1.CSS 听觉参考手册
2.CSS 选择器
3.CSS 参考手册
4.CSS3 animation-name 属性
5.CSS3 animation 属性
6.CSS3 @keyframes 规则
7.CSS 浏览器支持
8.CSS 颜色十六进制值
9.CSS 颜色名称
10.CSS 合法颜色值
11.CSS 颜色
12.CSS 单位
13.CSS Web安全字体
14.CSS3 animation-timing-function 属性
15.CSS3 animation-duration 属性
16.CSS background-color 属性
17.CSS background-attachment 属性
18.CSS background 属性
19.CSS3 backface-visibility 属性
20.CSS3 appearance 属性
21.CSS3 animation-play-state 属性
22.CSS3 animation-iteration-count 属性
23.CSS3 animation-delay 属性
24.CSS background-repeat 属性
25.CSS background-position 属性
26.CSS background-image 属性
27.CSS border 属性
28.CSS3 background-size 属性
29.CSS3 background-origin 属性
30.CSS3 background-clip 属性
31.CSS border-bottom-style 属性
32.CSS border-bottom-color 属性
33.CSS border-bottom 属性
34.CSS border-right-style 属性
35.CSS border-right 属性
36.CSS border-left-width 属性
37.CSS border-left-style 属性
38.CSS border-left-color 属性
39.CSS Border-left 属性
40.CSS border-color 属性
41.CSS border-collapse 属性
42.CSS border-bottom-width 属性
43.CSS3 border-bottom-left-radius 属性
44.CSS border-width 属性
45.CSS border-top-color 属性
46.CSS border-top-style 属性
47.CSS border-top-width 属性
48.CSS border-top 属性
49.CSS border-style 属性
50.CSS border-spacing 属性
51.CSS border-right-width 属性
52.CSS border-right-color 属性
53.CSS3 border-image-width 属性
54.CSS3 border-radius 属性
55.CSS3 border-top-left-radius 属性
56.CSS3 border-top-right-radius 属性
57.CSS3 border-image-source 属性
58.CSS3 border-image-slice 属性
59.CSS3 border-image-repeat 属性
60.CSS3 border-image-outset 属性
61.CSS3 border-image 属性
62.CSS3 border-bottom-right-radius 属性
63.CSS3 box-sizing 属性
64.CSS3 box-pack 属性
65.CSS3 box-orient 属性
66.CSS3 box-ordinal-group 属性
67.CSS3 box-lines 属性
68.CSS3 box-flex-group 属性
69.CSS3 box-flex 属性
70.CSS3 box-direction 属性
71.CSS3 box-align 属性
72.CSS bottom 属性
73.CSS3 column-rule-color 属性
74.CSS3 column-rule 属性
75.CSS3 column-gap 属性
76.CSS3 column-fill 属性
77.CSS3 column-count 属性
78.CSS color 属性
79.CSS clip 属性
80.CSS clear 属性
81.CSS caption-side 属性
82.CSS3 box-shadow 属性
83.CSS :after 选择器
84.CSS :before 选择器
85.CSS content 属性
86.CSS3 columns 属性
87.CSS3 column-width 属性
88.CSS3 column-span 属性
89.CSS3 column-rule-width 属性
90.CSS3 column-rule-style 属性
91.CSS font 属性
92.CSS float 属性
93.CSS Empty-cells 属性
94.CSS display 属性
95.CSS direction 属性
96.CSS cursor 属性
97.CSS counter-reset 属性
98.CSS counter-increment 属性
99.CSS3 grid-columns 属性
100.CSS3 font-stretch 属性