css flex-shrink属性怎么用


本文摘自PHP中文网,作者藏色散人,侵删。

css flex-shrink属性指定了flex元素的收缩规则。flex元素仅在默认宽度之和大于容器的时候才会发生收缩,其收缩的大小是依据flex-shrink的值。

css flex-shrink属性怎么用?

定义和用法

flex-shrink 属性指定了 flex 元素的收缩规则。flex 元素仅在默认宽度之和大于容器的时候才会发生收缩,其收缩的大小是依据 flex-shrink 的值。

注意:如果元素不是弹性盒对象的元素,则 flex-shrink 属性不起作用。

默认值: 1

继承: 否

可动画化: 是。

版本: CSS3

JavaScript 语法:

1

object.style.flexShrink="5"

CSS 语法:

1

flex-shrink: number|initial|inherit;

属性值

number 一个数字,规定项目将相对于其他灵活的项目进行收缩的量。默认值是 1。

initial 设置该属性为它的默认值。

inherit 从父元素继承该属性。

实例

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></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>

效果:

092244c3f0fccdbceb62c5e691f2bc5.png

实例解析:

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,此外,这个宽度是包含边框的。

以上就是css flex-shrink属性怎么用的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

css3跟css区别是什么

css文件中如何引入另一个css文件?(代码示例)

css如何重叠图片

使用html和css实现康奈尔笔记的模板

css怎么设置斜体字效果

css是啥

如何使用css设置框架内文本的垂直位置

css怎么让文字不换行

css内边框如何设置

html里padding是什么意思

更多相关阅读请进入《css》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...