CSS 某些情况下会阻塞 DOM 的生成

在大多数情况下,解析和构建 CSSOM 都会阻塞 DOM 的渲染和构建。

当浏览器遇到外部 CSS 文件的引用或者内联的 CSS 内容时,渲染引擎需要将这些 CSS 内容解析为 CSSOM。这是为了确保在 JavaScript 执行之前,页面的样式信息已经完全准备好。因此,渲染引擎会暂停 DOM 的渲染和构建,直到 CSSOM 构建完成。

这种行为可以确保 JavaScript 在运行时能够准确地反映 CSS 规则和样式。因为 JavaScript 有能力修改和操作 CSSOM,所以它需要在这些操作之前,确保 CSSOM 的完整性。

然而,也有一些特殊情况下,CSS 可能不会阻塞 DOM 的渲染和构建。例如,当使用 media 属性指定了某个外部样式表仅在特定的媒体环境下生效时,浏览器在遇到该样式表时可以选择跳过下载和解析,从而避免阻塞 DOM 的渲染。

总而言之,大部分情况下,解析和构建 CSSOM 都会阻塞 DOM 的渲染和构建。这是为了确保 JavaScript 在运行时能够准确反映 CSS 规则和样式的完整性。当然,具体行为还是取决于浏览器的实现和优化策略。

你可能感兴趣的:(css,前端)