CSS | 青训营笔记

66 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天

1.布局

布局分为三种:文档流、浮动、定位

1.1.文档流

文档流有三种盒子:块级(block)、行内块(inline-block)、行内盒(inline)

  • 块级元素独占一行,可设置width、height
  • 行内块元素可以与行内元素(行内和行内块)从左到右排列,可设置width、height
  • 行内元素可以与行内元素(行内和行内块)从左到右排列,但不可设置width、height

1.1.1.BFC(块级排版上下文)

本质上就是一个特殊的css布局环境

以下容器会创建BFC

  • 根元素
  • 行内块、浮动、非static定位
  • flex容器
  • overflow不是visible的块级盒子

BFC内部的排版规则

  • 垂直margin合并
  • BFC内盒子的margin不会与外面盒子的margin合并(可利用此性质解决外边距合并问题)
  • BFC不会和浮动元素重叠

1.1.2.flex盒子

  • 一种新的排版上下文
  • 可以控制子盒子的
    • 摆放的流向(上下左右)
    • 摆放的顺序
    • 盒子宽度和高度
    • 水平和垂直方向的对齐

1.2.浮动布局

浮动元素的特点:

  • 脱离文档流
  • 浮动元素从左到右排列
  • 浮动元素不会覆盖文字(可以用来实现图片环绕文字的效果)

1.3定位

  • static 默认
  • relative 相对于自身位置偏移,不脱离文档流
  • absolute 绝对定位,相对于非static元素定位(如果都没有,就相对于page作为偏移对象)
  • fixed 固定定位,相当于视口绝对定位
  • sticky 粘性定位,不脱离文档流,如果元素指定位移属性,当浏览器视口距离粘性定位的元素恰好等于这个位移属性的值,那么这个元素将固定在这个视口的位置(类似于固定定位)

今天就写布局了,明天再更新css其它内容,青训营太棒了