美文网首页
CSS 总结(渲染原理+css动画transition/anim

CSS 总结(渲染原理+css动画transition/anim

作者: 张德瘦嬢嬢 | 来源:发表于2019-10-18 12:11 被阅读0次

    浏览器渲染原理

    浏览器渲染必经之路

    步骤:

    • 根据HTML构建HTML树(DOM)
    • 根据css构建css树(CSSOM)
    • 将前面两棵树合并成一颗渲染树(render tree)
    • Layout布局(包括文档流,盒模型,计算大小位置等可以理解为素描)
    • Paint绘制(文字颜色,边框颜色,阴影等画出来可以理解为上色)
    • Composit合成(根据层叠关系展示画面)
    三棵树
    浏览器渲染三棵树.png
    Paint绘制渲染
    1. 打开开发者工具
    2. 底部如果没用控制台什么的按esc调出
    3. 如果没有rendering工具,在三个原点(more tool)的地方调出
    4. 勾选第一个<input type="checkbox"> Painting Flashing
    5. 在调试运行过程中,如果页面有重新painting的时候,就会出现绿色的闪动,便于了解和理解painting过程


      打开浏览器 Paint Flashing
    样式更新
    1. 极少数的时候运用鼠标hover等方式更新
    2. 绝大多数用的是JS更新样式
    • 一些例子
    div.style.backgroundcolor='red' //新人才会在js里面用.style
    div.style.display='none'
    div.classList.add('red')  //高手会在js里面改样式
    div.remove()
    

    那写四种情况的渲染方式有没有不同呢?

    • 三种常见的JS更新样式
    1. 全路渲染


      全路渲染.png
    2. 跳过layout


      跳过layout.png
    3. 跳过layout和paint.png


      跳过layout和paint.png
    • 如何知道哪些css属性触发了哪些步骤的渲染呢,
      有人提供了一个网站,csstriggers
      csstrigger
    渲染优化

    比如把left变成transform
    比如css优化:使用will-change或者translate
    比如JS优化:使用requestAnimationFrame代替setTimeout/setInterval
    分步骤,每一步都可以优化,参考谷歌官方教程csstriggers看css具体哪些属性渲染了哪些步骤

    CSS 动画

    transition: all 2s;
    transform:scale(1.3) ;
    transform:translateX(30%) ;
    transform:translate(30%,20px) ;
    transform:translate3d(30%,20px,1px) ;
    transform:rotate(45deg) ;
    
    animation: .5s heart infinite alternate-reverse;
    @keyframes heart {
      0%{
        transform: scale(1);
      }
      100%{
        transform: scale(1.2);
      }
    @keyframes indentifier{
    0%{top:0;left:0;}
    30%{top:50px;}
    100%{top:100px;left:100%;}
    }
    
    transform

    四个常用功能:

    1. 位移translate
    2. 缩放scale
    3. 旋转rotate
    4. 倾斜skew
    • 一般都会配合transition过渡
    • inline元素不支持transition,先变成block
    transform支translate

    相关文章

      网友评论

          本文标题:CSS 总结(渲染原理+css动画transition/anim

          本文链接:https://www.haomeiwen.com/subject/hbcimctx.html