CSS知识点总结

213 阅读2分钟

一、CSS动画

概念

多个静止画面以一定的速度播放时,肉眼产生错觉,误以为是活动的画面。

二.浏览器渲染原理

步骤

  1. 构建HTML树(DOM)
  2. 构建CSS树(CSSDOM)
  3. 将以上两种树合并成一个渲染树(render tree)
  4. 布局(Layout),文档流、盒模型、计算大小和位置
  5. 绘制(Paint),把边框颜色、阴影等画出来
  6. 合成(Compose),根据层叠关系展示画面

更新样式

JS更新样式:

  1. div.style.background ='red'
  2. div.style.display ='none'
  3. div.classList.add('red')
  4. div.remove()直接删掉节点
    tips:实际开发过程中写样式

更新方式

  1. div.remove() 会触发当前小时,其他元素relayout
  2. 改变背景颜色 直接repaint+compasite
  3. 改变transform 只需compasite 捕获.PNG  渲染方式.PNG

动画优化

  1. JS优化: 使用 requestAnimationFrame代替 setTimeout 或 setlnterva
  2. CSS优化:使用 will-change 或 translate3

transform

  1. translate平移
  2. scale缩放(整体,包括边框宽度等所有尺寸参数)
  3. rotate 旋转
  4. skew 倾斜

三、transition用法

作用

补充中间帧

用法

  1. transition: 属性名 时长 过渡方式 延迟
  2. transition: left 200ms linear
  3. transition: left 200ms, top 400ms 可以用逗号分隔两个不同的属性
  4. transition: all 200ms 可以用 all 代表所有属性
  5. 过渡方式有:linear | ease | ease-in | ease-out | ease-in-out | cubic-bezier | step-start | step-end | steps

不能过渡情况

  1. display: none=> block无法过渡
  2. 一般改成visibility:hidden =>visible
  3. background 颜色可以过渡
  4. opacity 透明度可以过渡
    tips过渡必须要有起始,比如:hover和非hover状态的过渡

四、animation 用法

@keyframes语法

  • from to 语法

image.png

  • 百分数语法

image.png

animation缩写语法

animation:时长|过渡方式|延迟|次数|方向|填充模式 |是否暂停|动画名

  1. 时长:1s或者1000ms
  2. 过渡方式:跟transition取值一样,如linear
  3. 次数:3或者2.4或者infinite
  4. 方向:reverse | alternate | alternate-reverse
  5. 填充模式:none | forwards | backwards | both
  6. 是否暂停:paused | running
    以上所有属性都有对应的单独属性