【发布时间】:2018-03-08 19:47:32
【问题描述】:
遇到了interesting video,关于在 Chrome 开发工具中调试渲染性能。在他的课程中,Umar 将 html 标签上 CSS 类的更改确定为呈现瓶颈的根源。 Devtools 显示更改此类可能会影响 DOM 中 html 以下的 3,874 个元素,并触发昂贵的 recalculate style 操作。
过去,我在html 或body 标记中添加了CSS 类,作为表达该级别页面状态的便捷方式。
您的 CMS 可能出于同样的目的这样做。例如,在 WordPress 网站中,您可能会在帖子的 body 标签上看到一堆类,例如 post-template-default single single-post postid-99999 single-format-standard logged-in category-news subcategory-uk has-hover。
我们应该避免这种做法吗?还是只有在 CSS 规则中使用类时才会影响渲染性能?
【问题讨论】:
-
我不确定是什么问题。性能问题是由必要的页面重新绘制引起的。所以如果没有重绘,就没有问题。
-
例如 BEM 等不同的 CSS 方法都使用这种模式,没有人谈论在一行中堆叠超过 1 个类的性能。
-
谢谢@MrLister,我想我明白了 - 所以如果没有与类相关的 CSS 规则,并且我更改了 html 标签上的类,浏览器将不会尝试重新计算任何样式.我认为 Umar 视频的重点是,当 are CSS 规则受 DOM 顶部标签上的类影响时,这可能会很昂贵。
-
谢谢@Nicholas,我认为问题在于将一个类添加到一个标签中,其中包含许多不同级别的其他标签。
标签: html css performance dom render