css - CSS是如何处理的?

标签 css dom browser

我试图准确理解浏览器处理 CSS 的方式和顺序。我已经知道 CSS 是从右向左读取的,但更具体地说,我想知道是否:

  1. 浏览器会遍历 DOM 中的每个元素,并针对每个元素扫描 CSS 规则以查找匹配的样式?...或者如果:
  2. 浏览器会遍历每个 CSS 规则,并针对每个选择器扫描 DOM 以查找与该选择器匹配的 DOM 元素?

(或者这甚至可能因浏览器而异?)

最佳答案

据我所知,这不是 CSS 标准定义的,它只指定结果,而不指定达到结果的方法。由于这两种“算法”都会为您提供相同的视觉输出,因此它们应该都是有效的实现,假设它们还考虑了网页的动态性质(即,元素几乎可以随时通过 Javascript 移动、添加、修改或删除)这可能会改变它们匹配的 CSS 规则,甚至其他元素匹配)。

这应该取决于实现。不同的浏览器不必都以相同的方式执行此操作。不过请放心,浏览器领域的竞争已经足够激烈,您不必担心设置 CSS 规则对性能的影响。

关于css - CSS是如何处理的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14283902/

相关文章:

jquery - 使用 Bootstrap 的垂直菜单

javascript - 如何使用 Phantomjs 向下滚动以加载动态内容

browser - 您可以创建符合HIPAA要求的Amazon S3 Web应用程序吗?

html - 多个 CSS 类值

javascript - 如何将颜色插入数据表(td)

css - flex 方向 :column doesn't allow children to be scrollable in Firefox

javascript - JavaScript 可以在弹出窗口关闭并重新打开它时检测到它吗?

html - 我如何在单个聚合物元素中使用多个 <content> 标签?

browser - 从单独的应用程序访问网络浏览器开发工具

c# - 通过 InvokeScript 的 JS