monsterooo / blog

and make promises by the hours
MIT License
14 stars 1 forks source link

css继承介绍 #4

Open monsterooo opened 6 years ago

monsterooo commented 6 years ago

在现实生活中继承是很常见的,除非有其他因素影响,一般情况下父母较高他的孩子也是比较高等等例子。我们在css中也可以看到类似的东西(inherit)。

CSS Inheritance - Inherit the Kingdom

如果你将一个容器元素color设置为绿色,除非有一些规则覆盖color这个颜色,容器内所有元素都会是绿色的。某些属性的值通过父元素传递到子元素的机制称为继承。

在本文中,你将会学习到关于继承的不同方面,以及它如何影响不同元素的外观。

css的继承有什么用?

css继承大大减少了创建网站所需要的时间和体力。想象一下你需要写多少css来给body和他的子元素设置color。这非常浪费时间,也很容易出错并且难以维护。同样,你可以想象如果强制你给每个子元素设置font-size,font-family,这肯定是一场噩梦。

来看一下这个演示

这里我给body元素定义了font-family,font-sizeline-height属性,这些值都被嵌套在body中的元素继承了。它的好处是给布局提供了一致性,而不需要在多个元素上重复设置同样的属性。

只有某些属性被继承

在现实生活中,不是所有的属性都是从父母你来继承过来的,css也是如此,并不是每个子元素的css属性都是默认继承的。事实上如果所有的css属性都被继承,它所带来的效果跟没有继承一样,因为你不得不写很多css来覆盖这种行为。

举个例子,如果border属性默认被继承的话,设置一个颜色有border会导致其所有子元素同样拥有border属性。同样的,如果子元素继承了父元素的background-image属性结果将非常混乱。

CSS Inheritance: An Introduction 原文