“在你还没设置之前,我们就已经有值了。”
一些CSS属性值会继承上一级的属性——如果你没有给他设置值的话。
继承流(Inheritance flow)
<html>标签是文档流中的第一个标签,所以他不会从哪里进行继承,添加一些属性在该标签中,会使其继承到很远下去…
但在中间,比如<body>标签设置了一个X属性,就会中断从<html>中流下来的 X 属性。
可继承的属性
尽管,可继承的属性有很多,但并不是全部。以下是完整列表:
- azimuth
- border-collapse
- border-spacing
- caption-side
- color
- cursor
- direction
- empty-cells
- font-family
- font-size
- font-style
- font-variant
- font-weight
- font
- letter-spacing
- line-height
- list-style-image
- list-style-position
- list-style-type
- list-style
- orphans
- quotes
- text-align
- text-indent
- text-transform
- visibility
- white-space
- widows
- word-spacing
仅是参考,绝非让你全部背下来——这绝对不是一件有效率的事情
当然,常用的——比如加粗了的印象要稍微深刻一些最好。
如何更好的控制继承
inherite 关键字
你可以将属性值设置为inherite使其继承父级的值。比如控制一个组件下的字体风格都一致——尽管可能在组件外部有另一个字体,你也只需要选择该组件并且设置字体风格,并将其下的元素字体风格属性值都设置为inherite
.component{font-style: oblique;}.component p {font-style: inherit;}
initial 关键字
继承可能会带来一些令人摸不着头脑的情况,而initial提供了重置的选项——让其回到最初的起点…恢复该元素中的该属性的默认值。
unset 关键字
unset是一种分类讨论,如果该属性可继承,那么就等于设置为了inherite;如果该属性不可继承,那么就等于设置为initial。
记住所有可继承的属性太难了,也十分不值得花时间。unset属性也许就能帮忙解决这个问题🤔
.inside p{all: unset;}
将某组件内部所有属性都重置,这样就不会受到外面属性的影响。
