CSS有哪些属性可以继承?

1.背景介绍

了解css样式表的继承,我们先从文档树(HTML DOM)开始,文档树由HTML元素组成,文档树和家族树类似,也有祖先、后代、父亲、孩子、兄弟 css样式表继承指的是,特定的css属性向下传递到后代元素

2.知识剖析

那么有哪些属性可以自动继承呢

有继承性的属性: 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:文本水平对齐 line-height:行高 word-spacing:增加或减少单词间的空白(即字间隔) letter-spacing:增加或减少字符间的空白(字符间距) text-transform:控制文本大小写 direction:规定文本的书写方向 color:文本颜色 3、元素可见性:visibility 4、表格布局属性:caption-side、border-collapse、border-spacing、 empty-cells、table-layout 5、列表属性:list-style-type、list-style-image、list-style-position、list-style 6、生成内容属性:quotes 7、光标属性:cursor 8、页面样式属性:page、page-break-inside、windows、orphans 9、声音样式属性:speak、speak-punctuation、speak-numeral、speak-header、 speech-rate、volume、voice-family、pitch、pitch-range、 stress、richness、、azimuth、elevation

所有元素可以继承的属性: 1、元素可见性:visibility 2、光标属性:cursor 内联元素可以继承的属性: 1、字体系列属性 2、除text-indent、text-align之外的文本系列属性 块级元素可以继承的属性: 1、text-indent、text-align

无继承的属性 1、display 2、文本属性:vertical-align: text-decoration: text-shadow: white-space: unicode-bidi: 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

继承中比较特殊的几点 1、a 标签的字体颜色不能被继承 2、h1-h6标签字体的大下也是不能被继承的 因为它们都有一个默认值

3.常见问题

问题1.font-size的继承问题 ?

问题2: 继承中容易引起的错误:如body{color:blue}

在有些浏览器中这句定义会使除表格之外的文本变成蓝色。从技术上来说,这是不正确的,但是它确实存在。所以我们经常需要借助于某些技巧,比如将css定义成这样:

body,table,th,td{color:blue}

这样表格内的文字也会变成蓝色。

问题3:多种样式混合应用的优先级问题

4.解决方案

1.font-size是设置字体的一个css样式,其值可以为:px或者em; 继承方式是根据父元素来定的,如果父元素已经定义了字体大小,子元素没有设置字体大小,那么会默认使用父元素的font-size值,也可以单独给某一个元素设置其值

3.当有多个规则都能应用于同一个元素时,权重越高的样式将被优先采用。

被继承的特性按权重计算方法计算,权重为0,这就意味着任何显示声明的规则将会覆盖其继承样式。因此,不管一条规则具有多高的权重,如果没有其他规则能应用于这个继承元素,那么它也只是个被继承的规则而已

5.编码实战

demo

6.扩展思考

inherit 关键字指定一个属性应从父元素继承它的值。 inherit 关键字可用于任何 HTML 元素上的任何 CSS 属性。

7.参考文献

继承性

你可能感兴趣的:(CSS有哪些属性可以继承?)