YBFACC / blog

仅记录个人学习使用
3 stars 0 forks source link

Flex #20

Open YBFACC opened 4 years ago

YBFACC commented 4 years ago

Flex

flexbox

此图引用MDN

属性

测试

justify-content

3

flex-direction

55

flex-wrap

2

align-items

4

​ flex-strat

6

​ flex-end

7

​ last baseline

8

align-content

10

​ space-between

11

当出现换行时,align-content和align-items的行为

  1. align-content: normal或者不设置

可以看到弹性容器被分成上下2 个子项。空间平均分配,子项行高占满。

100

  1. 再设置align-items:center

102

align-items以当前行高进行渲染。

  1. align-content: space-around;

    101

可以看到 行高被压缩,每行以当前行内最高的元素为基础。

  1. 再设置align-items:center

103

align-items以当前行高进行渲染。

order

不设置默认为0,数字越大,优先级越低。

    <div class="father1">
      <div class="son1" style="order: 4;">1</div>
      <div class="son1" style="order: 3;">2</div>
      <div class="son1" style="order: 2;">3</div>
      <div class="son1" style="order: 1;">4</div>
    </div>

1

flex-grow

默认设置为0。

它指定了flex容器中剩余空间的多少应该分配给项目

剩余的空间是flex容器的大小减去所有flex项的大小加起来的大小。如果所有的兄弟项目都有相同的flex-grow系数,那么所有的项目将获得相同的剩余空间,否则将根据不同的flex-grow系数定义的比例进行分配。

​ 第一项flex-grow:1

2

​ 第一项flex-grow:0.6

5

flex-shrink

默认设置为0。为0时不参与收缩。

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

​ 总宽度300px,子项宽度为100px,指定2个flex-shrink: 1

6

flex-basis

默认设置为auto。(含义是 "参照我的widthheight属性")

指定了 flex 元素在主轴方向上的初始大小。

如果不使用 box-sizing 改变盒模型的话,那么这个属性就决定了 flex 元素的内容盒(content-box)的尺寸。

flex

单值语法: 值必须为以下其中之一:

  • 一个无单位数它会被当作的值。
  • 一个有效的宽度(width)值: 它会被当作 <flex-basis>的值。
  • 关键字noneautoinitial.

双值语法: 第一个值必须为一个无单位数,并且它会被当作 <flex-grow> 的值。第二个值必须为以下之一:

  • 一个无单位数:它会被当作 <flex-shrink> 的值。
  • 一个有效的宽度值: 它会被当作 <flex-basis> 的值。

三值语法:

  • 第一个值必须为一个无单位数,并且它会被当作 <flex-grow> 的值。
  • 第二个值必须为一个无单位数,并且它会被当作 <flex-shrink> 的值。
  • 第三个值必须为一个有效的宽度值, 并且它会被当作 <flex-basis> 的值。

align-self

​ 指定align-content为center,第一项alidn-self为start。

33

参考

CSS 常见布局方式

[使用 CSS 弹性盒子](