css属性的继承,初始值,计算值,当前值,应用值取什么,所以你可能对一些基本概念没有很好的理解,这里介绍css属性的一些关键概念:css属性初始值css属性计算valuecsspropertyappliedvaluecsspropertycurrentvaluecsspropertyinheritancemost所有的css属性都可以有这个值:inheritinheritsparentvalue:initial初始值,inherit继承parentvalue对于可继承的属性,直接继承parent的属性,如果直接parentelement没有设置,会往上一层继承,如果没有,就是默认值;对于非继承属性,这个要慎用,当然也可以用,可以继承父元素的属性,但是父元素可能没有这个属性,所以考虑使用它来避免这种情况初始值的初值比较合理。每个CSS属性定义的概述中给出的初始值对于不同的继承或非继承属性有不同的含义。对于继承的属性,初始值只能用于未指定值的根元素上[因为不是根元素会继承其他父元素的指定值]。对于非继承属性,初始值可以用在任何没有指定值的元素上。在CSS3中,允许作者使用initial关键字来显式设置InitialValue.ComputedValueCSS属性的计算值是通过处理特殊值inherit和initial来从指定值计算出来的,并按照“Computed属性摘要的“值”行。价值。计算属性的“计算值”通常涉及将相对值转换为绝对值(例如em单位或百分比)。比如一个元素有font-size:16px和padding-top:2em的属性值,padding-top的计算值为32px(字体大小的两倍)。但是有些属性有百分比值转换为百分比计算的值(这些元素相对于布局后需要知道的值的百分比,比如width,margin-right,text-indent,top).另外,如果line-height属性的值是一个没有单位的数字,那么这个值就是它的计算值。这些计算中的相对值在AppliedValue确定后转换为绝对值。计算值的主要用途是继承,包括inherit关键字。getComputedStyle()DOMAPI返回的解析值,可以计算或应用。应用值CSS属性的应用值(usedvalue)是所有计算完成后最终使用的值,可以通过window.getComputedStyle获取。尺寸(例如宽度、行高)以像素为单位,速记属性(例如背景)匹配组合属性(例如背景颜色、显示)匹配位置、浮动,并且每个CSS属性都有一个值。详细信息计算CSS属性的最终值需要三个步骤。首先,指定值取自样式级联(选择样式表中权重最高的规则)、继承(如果属性可以继承则为父元素的值)或默认值。然后根据规范计算计算值(例如span指定position:absolute后,显示变为块状)。最后计算布局(auto或percentage等size转换为pixel值),结果就是used值。这些步骤在内部完成,脚本只能使用window.getComputedStyle获取最终应用的值。示例没有明确的宽度。指定宽度:自动(默认)。计算宽度:自动。应用宽度:998px(例如)。显式宽度:50%。指定宽度:50%。计算宽度:50%。应用宽度:447px显式宽度:继承。指定宽度:50%。计算宽度:50%。应用宽度:221px。与计算值的区别CSS2.0只将计算值定义为属性计算的最后一步。CSS2.1引入了定义不同的应用值,以便子元素可以在父元素计算为百分比时显式继承它们的高度和宽度。对于不依赖于布局的CSS属性(如display、font-size、line-height),计算值与应用值相同,否则会不同(自CSS2.1变化:Specified,computed,和实际值):实际值CSS属性的实际值是应用后使用值的近似值。例如,用户代理可能只能渲染整数像素值(实际值)的边框,并且该值可能被迫接近边框的计算宽度值。继承与非继承每个CSS属性定义的概述表明该属性是默认继承(“继承:是”)还是默认不继承(“继承:否”)。这决定了当您没有为元素的属性指定值时如何计算值。继承当一个元素的继承属性(inheritedproperty)没有指定值时,取父元素相同属性的计算值。只有文档根元素采用属性概述中给出的初始值(意味着这里应该是属性自己定义中的默认值)。以下是继承的一些属性azimuth,border-collapse,border-spacing,caption-side,color,cursor,direction,elevation,empty-cells,font-family,font-size,font-style,font-variant,font-重量,字体,字母间距,行高,列表样式图像,列表样式位置,列表样式类型,列表样式,孤儿,间距范围,间距,引号,丰富度,说话标题,当元素的非继承属性(在Mozilla代码中有时称为重置属性)当没有指定值时,将采用属性的初始值(该值在属性概述中指定)。下面列出的是非继承display,margin,border,padding,background,height,min-height,max-height,width,min-width,max-width,overflow,position,left,right,top,bottom,z-index、float、clear、table-layout、vertical-align、page-break-after、page-bread-before和unicode-bidi。参考:http://www.w3.org/TR/CSS21/pr...https://developer.mozilla.org...http://www.cnphp.info/css-sty...
