浏览器的渲染过程:

1、根据HTML代码来构建HTML树(DOM)
2、根据CSS代码来构建CSS树(CSSOM)
3、将两棵树进行合并渲染出一棵渲染树(render tree)

如下图所示:

image.png

对于样式更新可分为:

1、JS/CSS > 样式 > 布局 > 绘制 >合成

2、JS/CSS > 样式 > 绘制 >合成

3、JS/CSS > 样式 > 合成

布局:通常为设置文档流、盒模型、计算大小和位置等
绘制:把边框、文字、背景等颜色绘制出来
合成:根据层叠关系展示画面

对于每个属性触发了什么流程,可通过 csstriggers.com 进行查询

transform

常用功能:
transform:translate(X/Y) px 朝着(X/Y)位移多少像素
transform:scale () 缩放多少倍
transform:rotate xdeg 旋转多少度
transform:skew 倾斜多少度

transform可以使用多重效果,写在一行 用空格隔开

  1. transform:scale(1.5) transform:translateX100px);

使用translate(-50%,-50%)可以做到定位元素的居中
**

transition 和 animation

transition : 属性名 时间 过度时间 延迟时间

并不是所有属性都可以过渡的,display:none>>>>>display:block 无法被观察到
过渡必须有始有终
当过渡有中间点时,需要使用两次过渡 a>>>>>b b>>>>>c

animation : 时长 过度方式 延迟时间 次数 方向 填充模式 暂停 动画名(属性名)

  1. @keyframes wenjianming{
  2. 0%{
  3. transform:scale(1.0);
  4. }
  5. 50%{
  6. transform:scale(.5);
  7. }
  8. 100%{
  9. transform:scale(1.5);
  10. }
  11. }

另一种代码书写方式是

  1. @keyframes wenjianming{
  2. from{
  3. transform:scale(1.0);
  4. }
  5. to{
  6. transform:scale(1.5);
  7. }
  8. }