为什么'font-family'不会自动在'<button>'标签中继承?

Nik*_*ria 16 html fonts css3

我注意到在<button>标签的情况下,font-family不会自动继承; 或者我必须明确指定它:

<button style="font-family: some_style;">Button</button> 
Run Code Online (Sandbox Code Playgroud)

或者像这样使用inherit属性:

<button style="font-family: inherit;">Button</button> 
Run Code Online (Sandbox Code Playgroud)

但是,如果是其他标记(例如标记),则会自动继承font-family<a>.

为什么<button>标签有这个问题?

这是一个演示.

pan*_*her 21

表单元素不继承字体设置,您必须手动设置此属性.

如果您使用字体声明,例如.身体,

body {font-family: arial, sans-serif}
Run Code Online (Sandbox Code Playgroud)

使用只是

body, input, textarea, button {font-family: arial, sans-serif}
Run Code Online (Sandbox Code Playgroud)

要么

input, textarea, button {font-family: inherit}
Run Code Online (Sandbox Code Playgroud)

  • 但是,*为什么*它们不继承字体设置?为什么这是 CSS 设计选择?...(ノಠ益ಠ)ノ彡┻⁄┻ (6认同)
  • 哈哈,我认为甚至不会瞄准他的`<button>`元素. (3认同)

Juk*_*ela 7

如果您使用其开发人员工具在浏览器中检查演示,您可以看到button元素的字体系列来自浏览器样式表。它们以不同的方式显示这一点,并且它们可能在那里使用不同的字体,但原理是相同的:font-family某些样式表中对元素的属性进行了声明,因此该属性不能被继承(除非您明确设置该值inherit当然,在它上面)。

这在规范中没有定义,但它们也没有禁止这样的浏览器样式表设置,它们是常见的做法。