首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSSOM是只在html页面有外部工作表链接时创建的,还是在我们有内联样式或内部css时创建的?

CSSOM是只在html页面有外部工作表链接时创建的,还是在我们有内联样式或内部css时创建的?
EN

Stack Overflow用户
提问于 2020-10-27 07:41:11
回答 1查看 209关注 0票数 2

我已经经历了关键的呈现路径及其在使页面加载更快方面的重要性。据我所知,DOM树和基于CSSOM的树的构造是在呈现页面之前进行的。html解析器还会向下移动,通过标记。最重要的是,脚本执行可以做两件事:

  1. 块解析器(假设不使用异步或延迟)
  2. 暂停用于CSSOM树的构造--

因此,对于基于CSSOM的树构建,DOM树构建和java脚本执行的整个过程都处于停滞状态。

我们也知道,css样式可以通过以下三种方式来完成-

  1. 外部css作为
  2. 内部css的链接,内部css定义在
  3. 内联css下,在需要样式的地方为每个元素标记定义样式属性。

问题是,对于外部css和内部css,我们都可以确保它是在head标记中,因此很可能在解析器到达脚本标记之前,它已经跨越了样式部分,因此当脚本执行不得不暂停CSSOM构造时,它可能会顺利进行。即使它也包含在样式中,我们也可以首先包含标记(用于外部工作表)或标记(用于内部css),然后使用该标记。

但是如果使用内联样式呢?因为在这种情况下,如果解析器遇到标记,脚本执行可能不会暂停任何CSSOM构造,因为样式与元素内联,在解析器交叉标记之后会在页面中稍后出现。因此,通常会等待先构建CSSOM树的脚本将继续执行,因为它的结论是不涉及样式。

所以我问-

  1. 关于基于CSSOM的树结构,它是仅在包含外部样式表时发生,还是在使用内部或内联css时发生?

  1. 是CSSOM树,即使在使用内联样式时也是如此,如果是,那么是否需要在最底层使用脚本标记,以便在执行脚本之前浏览器已经解析了所有内联样式?
EN

回答 1

Stack Overflow用户

发布于 2020-10-27 10:35:11

  1. ,它发生在任何需要的时候。因此,在呈现之前,在脚本运行之前。

  1. 是的,也不一定。脚本对DOM文档和框树进行操作,但是它们恰好在脚本运行时。当脚本运行时,文档和框树总是一致的,即使HTML只是部分解析。如果该状态足以使脚本成功完成其工作,则不需要在解析过程结束时运行它。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64549997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档