css渲染原理

2019-10-20  本文已影响0人  h5溧水大表哥

css渲染原理

.main h4 a {font-size: 14px}
<html>
  <body>
    <link href="example.css" rel="stylesheet">
    <div>Hi here</div>
    <script>
      document.write('<script src="other.js"><scr' + 'ipt>')
    </script>
    <div>Hi again</div>
    <script src="last.js"></script>
  </body>
</html>
  1. 解析器遇到了example.css,并将它从网络中下载下来。下载样式表的过程是耗时的,但是解析器并没有被阻塞,继续往下解析
  2. 解析器遇到<script>标签,但是由于样式文件下载未完成,阻塞了该脚本的执行(上面已指出)。解析器(构建DOM树和 CSS规则树)被阻塞住,不能继续往下解析
  3. 因为渲染树是DOM树 和 CSS规则树 来构造,所以此时,渲染树的构建也被阻塞
  4. 渲染树是绘制触发条件之一,因此Hi there!也就 不能被绘制(painting->display)到页面中。
  1. 接下来,一旦example.css下载完成,内联的脚本执行完了之后,解析器开始执行遇到的<script>标签,并查到src属性中的other.js文件,立即被阻塞,开始下载other.js;
  2. 因为解析器被阻塞,触发了绘制条件,浏览器就会收到绘制的请求,“Hi,here”就会显示在页面上
  3. other.js加载完成了之后,解析器继续向下解析,遇到 last.js 之后又被阻塞,
  4. 因为解析器再次被阻塞,又形成了 “绘制” 条件,因此绘制DOM树的内容,即,“Hi,again”就会显示在页面上。
  5. last.js加载完成,并且被执行。

可以简写为

    .mg {
      margin: 20px 0px 20px 100px;
    }
    7. 不要再id选择器和class选择器前使用标签名 例如:
    div #box {
      color: white;
    }
上一篇 下一篇

猜你喜欢

热点阅读