CSS 属性值处理
处理阶段
初始值
属性的初始值(initial value)是其默认值,如其定义表中所列。初始值的使用取决于属性是否被继承:
你可以使用 initial
关键字明确指定初始值。
备注:
初始值可在每个 CSS 属性参考页面的正式语法部分找到。例如,font-size
的初始值为 medium
。初始值不应与浏览器样式表指定的值相混淆。
指定值
属性的指定值(specified value)是 CSS 文件或 style
属性最初分配的值。给定属性的指定值根据以下规则确定:
- 在当前文档的样式表中给这个属性赋的值,会被优先使用。
- 如果在当前文档的样式表中没有给这个属性赋值,那么它会尝试从父元素那继承一个值。
- 如果上面的两种途径都不可行,则使用元素的初始值。
计算值
属性的计算值(computed value)是指这个属性在由父类转向子类的继承中的值。这是在将相对单位和自定义属性转换为绝对值等内容后,但在考虑特定布局信息之前得出的结果。
计算值由指定值计算得出,计算方法是:
计算值所需要的计算通常包括将相对值转换成绝对值(如 em
单位或百分比)。例如,如一个元素的属性值为 font-size:16px
和 padding-top:2em
,则 padding-top
的计算值为 32px
(字体大小的 2 倍)。
然而,对于有些属性(这些元素的百分比与需要布局确定后才能知道的值有关,如 width
、margin-right
、text-indent
和 top
),它们的“百分比值”会转换成“百分比的计算值”。另外,line-height 属性值如是没有单位的数字,则该值就是其计算值。这些计算值中的相对值会在使用值确定后转换成绝对值。
使用值
属性的应用值(used value)是在对计算值进行了所有计算,并根据布局的具体细节(例如,将百分比解析为实际像素值)对其进行细化后的属性值。
渲染值
实际值
属性的实际值(actual value)是应用值(used value)被应用后的近似值。例如,一个用户代理可能只能渲染一个整数像素值的边框(实际值),并且该值可能被强制近似于边框的计算宽度值。
解析值
属性的解析值(resolved value)是应用活动样式表并解析这些值可能包含的任何基本计算后的值。getComputedStyle()
方法会返回一个实时的 CSSStyleDeclaration
对象,其中包含应用到指定元素的所有 CSS 属性的解析值。每个解析值都是计算值或使用值,具体取决于属性。