zoukankan      html  css  js  c++  java
  • css基础篇(一)——浏览器加载和渲染网页

    1.介绍

    虽然这篇是css笔记,但是做为web开发,天天和浏览器打交道,有必要先理理我目前了解的浏览器加载和渲染页面的过程。

    2.页面加载和渲染流程

    如图:(该篇重点是css,所以该图重点说明css渲染)

    • 1.重建DOM树:渲染引擎开始解析html文档,转换树中的标签到DOM节点
    • 2.构建渲染树:解析css,根据css选择器找到节点的样式,创建另外一个树———渲染树
    • 3.布局渲染树:从根节点开始,计算出每一个元素的大小和位置
    • 4.绘制渲染树:遍历渲染树将每个节点都绘制出来

    整个流程简易描述:用户访问网页发送http请求,服务器收到请求做出相应处理后通过http response将html文件返回给浏览器;浏览器解析http response并创建DOM树;浏览器下载css,并应用在DOM树上,进行渲染;浏览器下载js,并解析执行js;

    3.相关概念(重绘,回流,css引擎查找样式表规则)

    重绘:是一个元素的外观改变,但没有改变布局的情况下发生;
    场景描述:当不设定尺寸,同时外部容器没有定死宽高,占据空间会从0到完全出现,左右上下都有可能位移,发生大规模的重绘。;
    回流:浏览器发现某个部分发生了点变化影响布局,需要倒回去重新渲染;
    场景描述:某个元素具有很复杂的动画效果(从上到下从做到右的动),改变了布局,就会出现回流;
    解决方案:这种元素使用绝对定位,使它脱离文档流;
    css引擎查找样式表规则:从右到左查找;
    场景描述:#ul li 是现在在页面中查找所有li,再找到#ul;
    解决方案:根据具体情况,尽量少使用后代选择器
  • 相关阅读:
    js 遍历数组对象求和
    小程序使用微信地址or小程序跳转设置页
    css内容渐入效果实现
    flutter实现文字超出最大宽度显示省略号
    flutter查看安全码SHA1
    Uncaught (in promise)
    小程序iphone蒙层滚动穿透
    map中使用箭头函数遇到的坑
    骨架屏css样式
    javascript(js)反转字符串
  • 原文地址:https://www.cnblogs.com/zhuz/p/5021930.html
Copyright © 2011-2022 走看看