1.背景介绍
了解css样式表的继承,我们先从文档树(HTML DOM)开始,文档树由HTML元素组成,文档树和家族树类似,也有祖先、后代、父亲、孩子、兄弟css样式表继承指的是,特定的css属性向下传递到后代元素。
2.知识剖析
对于一些可以继承的属性,可以只设置上级的CSS样式表树形,子级(下级)不用设置,会自动继承此CSS属性,可以减少CSS代码,便于维护。那么有哪些属性可以自动继承?
有继承性的属性:
1、字体系列属性 font:组合字体 font-family:规定元素的字体系列 font-weight:设置字体的粗细 font-size:设置字体的尺寸 font-style:定义字体的风格 font-variant:设置小型大写字母的字体显示文本,这意味着所有的小写字母 均会被转换为大写,但是所有使用小型大写字体的字母与其余文本 相比,其字体尺寸更小。 font-stretch:允许你使文字变宽或变窄。所有主流浏览器都不支持。 font-size-adjust:为某个元素规定一个 aspect 值,字体的小写字母 "x" 的高度与"font-size" 高度之间的比率被称为一个字体的 aspect 值。 这样就可以保持首选字体的 x-height
有继承性的属性:
2、文本系列属性 text-indent:文本缩进 text-align:文本水平对齐 text-shadow:设置文本阴影 line-height:行高 word-spacing:增加或减少单词间的空白(即字间隔) letter-spacing:增加或减少字符间的空白(字符间距) text-transform:控制文本大小写 direction:规定文本的书写方向 color:文本颜色
有继承性的属性:
3、元素可见性:visibility 4、表格布局属性:caption-side border-collapse empty-cells 5、列表属性:list-style-type list-style-image list-style-position、list-style 6、设置嵌套引用的引号类型: quotes 7、光标属性:cursor 8、还有一些不常用的;speak,page等属性,暂不讲解
所有元素可以继承的属性:
1、元素可见性:visibility
2、光标属性:cursor
内联元素可以继承的属性:
1、字体系列属性
2、除text-indent、text-align之外的文本系列属性
块级元素可以继承的属性:
text-indent、text-align
无继承的属性
1、display 2、文本属性:vertical-align text-decoration 3、盒子模型的属性:宽度、高度、内外边距、边框等 4、背景属性:背景图片、颜色、位置等 5、定位属性:浮动、清除浮动、定位position等 6、生成内容属性:content、counter-reset、counter-increment 7、轮廓样式属性:outline-style、outline-width、outline-color、outline 8、页面样式属性:size、page-break-before、page-break-after
3.常见问题
问题1:多种样式混合应用的优先级问题
问题2:font-size的继承问题
4.解决方案
当有多个规则都能应用于同一个元素时,权重越高的样式将被优先采用。
”important>内联 >ID>类 >标签 |伪类|属性选择 >伪对象 >继承 >通配符”
5.扩展思考
inherit关键字
inherit 关键字指定一个属性应从父元素继承它的值。
inherit 关键字可用于任何 HTML 元素上的任何 CSS 属性
6.参考文献
问题1:font-size的继承
答案:问题1
问题2:inherit关键字有哪些
答案:问题2
问题3:css有哪些可以继承的属性
答案:问题3