我想知道CSS是如何工作的......浏览器如何执行CSS中设计的任何内容......
让我们说
当一个页面被加载并且它附加了多个CSS文件,并且鼠标遍历某个锚点并找到一个为它设置的类时,它将搜索所有CSS文件中的相关类并读取其悬停状态然后渲染它......
怎么样......这是怎么回事......你可能猜到我想问的是什么......
答案 0 :(得分:7)
这是一个异常广泛而复杂的问题。它本质上是在问“浏览器如何渲染页面?” This video展示了Gecko如何为样本页面做到这一点。看到这样的渲染过程可能会让人感觉它有多复杂。
最终,由于CSS规范没有提供任何要求甚至是关于实现的指导,所以每个浏览器(或者,我们应该说,“每个渲染引擎”)都会以不同的方式做事。如果您今天要从头开始编写新的浏览器,您可以自由地探索您想要的任何算法。
阅读每个规则并查看哪些匹配(对于每个元素)的想法当然是一个可行的起点,尽管几乎可以肯定需要加强一些优化和缓存,以使其对于具有真实性的样式表具有可接受的性能。世界的复杂性。
幸运的是,今天使用的主要渲染引擎(Webkit和Gecko)都是开源的,您可以自由下载它们,探索代码,甚至进行更改。这真的是了解这些引擎如何在这种细节水平上运作的唯一方法。
答案 1 :(得分:0)