css知识总结

80 阅读2分钟

1. 浏览器渲染原理

  1. 根据HTML构建HTML树(DOM);
  2. 根据CSS构建CSS树(CSSOM);
  3. 将两棵树合并成一个渲染树;
  4. 布局(layout):根据文档流和盒模型,计算元素的大小和位置;
  5. 绘制(painting):将渲染树中的每个节点转换成屏幕上的实际像素;
  6. 合成(compose):渲染的最后一步,作用是将不同的图层合在一起。这一步会有GPU的参与,比如canvas,video等元素是由GPU进行操作的。,
    当样式更新时,CSS的渲染过程依次包括布局、绘制、合成。其中布局和绘制有可能被省略。

2. CSS 动画的两种做法(transition 和 animation)

第一种:transition 过渡
第二种:animation 动画 (推荐)

  • transition 过渡
    语法:
    transition:属性名 时长(1s,1ms) 过渡方式(linear | ease | ease-in |ease-out | ease-in-out | cubic-bezier | step-start | step-end | steps) 延迟(s, sm)、
  • animation 动画
    语法:
    animation:动画名 | 时长 | 过渡方式 | 延迟 | 次数 | 方向 | 填充模式 | 是否暂停
    @keyframes 动画名{0%{执行内容}30%{执行内容}65%{执行内容}100%{执行内容}}

3. flex布局

1.container部分

flex 布局是两根轴线 — 主轴和次轴。
主轴由 flex-direction 定义,可以取 4 个值:

  • row(从左向右横向排列)
  • row-reverse(从右向左横向排列)
  • column(从上向下纵向排列)
  • column-reverse(从下向上横向排列)\

justify-content:控制items盒子在主轴上上的对齐方式

  • flex-end
  • center
  • space-between
  • space-around
  • space-evenly

align-items:控制下级盒子在次轴上的位置(默认是stretch,)

  • center(居中)
  • flex-end(靠下)
  • stretch(等高)

2.item部分

  • item上面加order(通过order大小改变显示顺序)
  • item上面加flex-grow(瓜分剩余空间)
  • item上面加flex-shrink(控制空间不足时如何缩小)