深入CSS(二) | 青训营笔记

122 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的的第4天

块级盒子和行级盒子

image.png

元素和盒模型的关系

image.png 我们需要重点关注display属性!它设置了盒子的展现方式。

image.png

常规流

它决定了元素的布局方式,是最基本的布局模式。

image.png

  • 常规流布局方式:将窗体自上而下分成一行一行,块级元素从上至下、 行内元素在每行中按从左至右的依次排放元素。
  • 常规流包括:
    1. 行级排版上下文
    2. 块级排版上下文
    3. Table排版上下文
    4. Flex排版上下文
    5. Grid排版上下文

行级排版上下文规范

image.png

块级排版上下文规范

image.png 遵循BFC规则

image.png

Flex排版上下文(弹性布局)

image.png 使用Flex布局的的元素被称为Flex容器。是当前网页布局用的最多的布局方式之一。

  • 容器默认存在两根轴,分别是主轴与侧轴。

image.png

Flex-direction是决定主轴方向的属性。

它的四种值的情况如下图所示:

image.png

justify-content属性决定了容器内元素的对齐方式。

注意:是沿主轴的对齐方式。

image.png 其中:

  • space-between表示两端对齐。
  • space-around表示每个元素两侧的间隔相等。如图:

image.png

  • space-evenly表示每个间隔都相等。如图:

image.png

align-items决定了元素沿侧轴方向的对齐方式

如图:

image.png

  • baseline表示元素内第一行文字的基线对齐

align-self表示改变单个元素的对齐方式。

当值是auto或不写这一属性时,默认继承align-items对齐方式。

image.png

order决定了元素的排列顺序

数值越小,排列越靠前。

Flexibility

image.png

  • flex-grow

当容器的宽度减去C盒子的宽度后,以2:1的方式分给A和B

image.png

  • flex-shrink flex容器空间不足时候,单个元素的收缩比例。默认值都是1,并且不支持负值。当值为0时,表示不收缩。

举例:假设空间不足,当一个元素值为0,其它不为零时,其他元素都按比例缩小,这一个元素保持不变。

image.png

  • flex-basis 元素未伸展前,占据的主轴空间。浏览器会根据这一属性计算容器剩余的宽度。默认值auto是占满容器。

flex简写形式

flex按顺序包含了flex-growflex-shrinkflex-basis三种属性。

当只填一个或两个值时会表示以下情况:

image.png

Grid布局

网格布局,是一种二维形式的布局。通过行、列二维方式将元素安排到网格中,来实现布局的目的。

image.png

使用方式

image.png

  1. 生成一个Grid容器
  2. 划分网格

columns表示有几列,rows表示行。

  • image.png

  • image.png auto表示剩余自动填充宽度或高度。百分数是相对于容器来说的。

  • image.png fr表示剩余空间按比例分配。

  1. 设置子项位置。

Grid表格坐标

有四个属性来定位区域:grid-columns-startgrid-columns-endgrid-row-startgrid-row-end。分别是列的起始和行的起始。

有三种定位区域的方式:

  1. 用上面的四个属性。

image.png 2. grid-columngrid-row,分别是列的起始和行的起始,表示方式如图:

image.png 3. grid-area,按照顺序有四个值,分别也是列的起始和行的起始。如图:

image.png

image.png

image.png

小结

认识了常规流的四种排版布局方式。

尾声

以上包含部分个人观点,如有技术错误,敬请提出。