如何在浏览器中实现CSS和DOM?

Jla*_*lam 11 browser algorithm dom recursive-datastructures data-structures

这是一个非常学术性的问题.我想知道浏览器是如何实现的,因为使用什么数据结构或算法将CSS选择器映射到特定的DOM元素.它是通过哈希表完成的吗?DOM子节点如何知道应用于父节点的样式也适用于自身等.我一直在关注Mozilla开发人员中心并且没有找到任何内容.关于这个主题的任何文件或书籍将非常感谢...谢谢!

Kor*_*nel 10

匹配答案问题"哪个选择器匹配给定节点",而不是"哪个节点匹配选择器".这使您可以简单地针对当前节点评估选择器的每个部分(比较节点名称/ ID /类).后代组合子和继承是通过扫描父节点完成的.

如果您对接下来发生的事情感兴趣,那么WebKit博客就有了很好的系列:WebCore渲染基础知识