属性继承
1. 字体系列属性
字体系列属性主要包括: font-size、font-family、font-variant、font-style、font-weight、font、letter-spacing、word-spacing、text-transform 和 line-height。如果没有在⼀个元素上设置这些属性,则其继承上层的相应属性。
2. ⽂本系列属性
⽂本系列属性主要包括: color、direction、text-align、text-indent、text-decoration、textshadow、white-space、word-wrap 和 hyphens。只有 color 属性可以被继承⾃⽗元素,其它都不能继承。
3. 其他系列属性
其他系列属性主要包括: visibility、cursor、list-style 和 quotes。list-style 属性可以继承,但 quotes 属性不能被继承。
inherit(继承)值
每⼀个属性可以指定值为“inherit”,即:对于给定的元素,该属性和它⽗元素相对属性的计算值取⼀样的值。继承值通常只⽤作后备值,它可以通过显式地指定“inherit”⽽得到加强,例如:
p { font-size: inherit; }
继承的局限性
继承虽然减少了重复定义的麻烦,但是,有些属性是不能继承的,例如border(边框)、margin(边距)、padding(补⽩)和背景等。
这样设定是有道理的,例如设定了边框,如果此属性也继承的话,那么在这个内所有的元素都会有边框,这⽆疑会产⽣⼀个让⼈眼花缭乱的结果。
同样的,影响元素位置的属性,例如margin(边距)和padding(补⽩),也不会被继承。同时,浏览器的缺省样式也在影响着继承的结果。例如:
body { font-size: 12px; }
<h2>
2级标题的⽂字不是12px。// </h2>
H2中⽂字将是标题2样式的⽂字⽽⾮12px⼤⼩的⽂字。这是因为浏览器的缺省样式设定了<h2>
的CSS规则。
css属性⼀旦继承了不能被取消,只能重新定义样式。