在前端工程师的日常工作中,经常会用到CSS元素选择器;不管你写的是通用的CSS,还是需要编译的SASS、SCSS、LESS等,最终都会被逐行编译成CSS,Style属性最后交给浏览器去解析应用。但是你有没有想过这是如何实现的呢?浏览器渲染先来看看浏览器的渲染步骤:CSS被浏览器加载后,会被解析成一棵CSSOM树,并会尝试与Dom叠加形成一棵渲染树,然后执行步骤比如计算位置和渲染。从这个角度来看,应用CSS属性的关键在于如何将CSS转化为一棵CSSOM树,以及如何将CSSOM应用到DOM中。CSSOM树当我们写下一组CSS样式,比如:#id.classh4+p{...}浏览器解析的时候,你可能会认为CSS会按照从左到右的顺序找出#id>。class>h4>p,最后应用,但实际上浏览器解析CSS的顺序是p>h4>.class>#id,从右到左。很违反直觉,对吧?但就性能而言,从右到左的解析比从左到右的解析要好得多。假设它有这样的HTML:
