CSSOM是仅在html页面具有外部工作表链接时创建的,还是在具有内联样式或内部css时创建的?
我已经讨论了关键的渲染路径及其在加快页面加载方面的重要性。据我所知,DOM树和基于CSSOM的树的构造发生在页面呈现之前。html解析器也会在遇到标记时自上而下移动。 最重要的一点是,脚本执行完成两件事:CSSOM是仅在html页面具有外部工作表链接时创建的,还是在具有内联样式或内部css时创建的?,html,css,dom,Html,Css,Dom,我已经讨论了关键的渲染路径及其在加快页面加载方面的重要性。据我所知,DOM树和基于CSSOM的树的构造发生在页面呈现之前。html解析器也会在遇到标记时自上而下移动。 最重要的一点是,脚本执行完成两件事: 块解析器(假定未使用异步或延迟) 先暂停CSSOM树的构建 因此,为了基于CSSOM的树构造,DOM树构造和java脚本执行的整个过程被暂停 我们还知道,css样式可以通过以下三种方式完成- 将外部css作为下的链接 内部css定义在 在需要设置样式的地方,为每个元素标记使用样式属性定义内联c
我认为这里有两个CSS概念的融合。CSSOM和盒子树。CSSOM是一个用于操作样式表的API。作为一个API,它不是“构造的”,并且主要与内联样式无关。渲染之前需要构建的是长方体树。这需要并使用DOM文档中的所有节点,以及与之相关的所有样式,无论其来源是什么。@Alohci-通过构造CSSOM,我指的是基于CSSOM构造树。您可以将其称为API,例如java脚本中的代码使用它来修改任何节点的样式。在你们的回答中,你们提到它的创建和源代码无关,我要问的是,若它的内联样式和解析器遇到了脚本标记,它,按照规则书,除非完全构建了基于CSSOM的树,否则将停止执行,但是当解析器还没有到达相应的元素标记时,它如何确定页面下有更多的样式呢?它(我假设你指的是浏览器)不知道。当脚本运行时,它会对DOM文档和框树进行操作,如果需要,还会对解析过程中的任何布局进行操作。CSSOM和盒子树。CSSOM是一个用于操作样式表的API。作为一个API,它不是“构造的”,并且主要与内联样式无关。渲染之前需要构建的是长方体树。这需要并使用DOM文档中的所有节点,以及与之相关的所有样式,无论其来源是什么。@Alohci-通过构造CSSOM,我指的是基于CSSOM构造树。您可以将其称为API,例如java脚本中的代码使用它来修改任何节点的样式。在你们的回答中,你们提到它的创建和源代码无关,我要问的是,若它的内联样式和解析器遇到了脚本标记,它,按照规则书,除非完全构建了基于CSSOM的树,否则将停止执行,但是当解析器还没有到达相应的元素标记时,它如何确定页面下有更多的样式呢?它(我假设你指的是浏览器)不知道。当脚本运行时,它会对DOM文档和框树进行操作,如果需要的话,还会对解析过程中的任何布局进行操作。我不这么认为,因为没有必要在执行任何脚本时,DOM树和CSSOM树总是提前出现,即使HTML被部分解析。请参考-developers.google.com/web/basictures/performance/…这里明确指出,在文档中放置脚本也是重要的