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