CSS里面表单元素input, button, textarea,select等并不继承body的字体设置,它会使用系统或者浏览器自身的设置。

继承和 font-family

例如,如果给根部(也作:全局)的 html 元素定义一个 font-family 属性,那么可以确定这条规则会在文档里应用到所有祖先元素(有一些例外情况,将在下个部分讨论)。

  1. html {
  2. font-family: sans-serif;
  3. }
  4. /*
  5. This rule is not needed ↷
  6. p {
  7. font-family: sans-serif;
  8. }
  9. */

如果我在局部作用域里定义了某些规则,那么它们在全局,或者说在任意祖先级的作用域中都是无效的,只有在它们自己的子作用域里是有效的(就像在上面代码中的 p 元素里)。在下个例子当中,1.5line-height 并没有被 html 元素用上。但是,p 里的 a 元素则运用上了 line-height 的值

  1. html {
  2. font-family: sans-serif;
  3. }
  4. p {
  5. line-height: 1.5;
  6. }
  7. /*
  8. This rule is not needed ↷
  9. p a {
  10. line-height: 1.5;
  11. }
  12. */

inherit 关键字

某些类型的属性是不会默认继承的,而某些元素则不会继承某些属性。但是在某些情况下,可以使用 [property name]: inherit 来强制继承。例如 input , textarea . 可以使用通配选择符和 inherit 关键字

  1. * {
  2. font-family: inherit;
  3. line-height: inherit;
  4. color: inherit;
  5. }
  6. html {
  7. font-size: 125%;
  8. font-family: sans-serif;
  9. line-height: 1.5;
  10. color: #222;
  11. }


场景

在做组件化拖拽时,例如组件内是一个文本款,组件在写的时候外层是包了一个div的,这时候在修改样式的时候,组件中的样式无法继承外层的div .