当我们在讨论CSS选择器优先级的时候,我们再讨论什么?
其实很多人都对此有点模糊,那我换个方式问: 一个CSS属性的最终值是怎么来?
回答 : CSS属性的最终值是通过层叠计算得来的。
那什么是层叠计算呢?
我通俗的理解,其实就是先计算再重叠。
计算过程
计算的过程指的是用户代理(浏览器只是用户代理的一种“实例”)在渲染HTML的时候,对CSS进行层叠计算的过程(这里不讨论浏览器的渲染、重绘等触发时机)。
为了方便理解,这里只针对一个属性值(padding)进行讨论,其他的属性值都是一样的过程。
demo:
<div class="taobao_com" id="taobao_com" data-show="true"> <div class="taobao">div> <p>taobao.comp> div>
div{ padding:1px; } .taobao_com{ padding:12px; } div .taobao{ padding:123px; } .taobao_com .taobao{ padding:1234px; }
在属性的计算之前,会对每个文档元素的每个属性上的值进行排序 (W3C文档地址):
原文链接