当我们在讨论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文档地址):


原文链接
12-17 22:40