我有输入和标签字段:
<label class="adm" for="UserName">User name</label>
<input class="adm" id="UserName" name="UserName" size="30" type="text" value="" />
和CSS:
body,html { font-family: Verdana,Arial,Helvetica,sans-serif; margin:0; padding:0; color: #111;}
label.adm { font-size:0.9em; margin:0 0 3px 3px; display: block;}
input.adm { font-size:0.9em; margin:0 0 3px 3px; }
当代码在Firefox中打开时,字体不一样。 Firebug显示两者都“应该”继承,当我看到计算机时,它显示标签使用Verdana。但输入显示它使用“MS Shell Dlg”。
任何人都可以解释发生了什么以及为什么它似乎不遵守正常的CSS规则?
答案 0 :(得分:105)
默认情况下不会继承,但您可以将其设置为使用css继承
input, select, textarea, button{font-family:inherit;}
答案 1 :(得分:13)
表单项(inputs / textarea / etc)不继承字体信息。您需要在这些项目上设置font-family。
答案 2 :(得分:3)
三年后,我发现奇怪的<input>
类型reset
,submit
和button
元素在Chrome中未继承font-family
或Safari。我发现他们也不会收到填充物。
但是当我弄乱某些属性时,例如background
,border
或这个奇怪的appearance
属性,那么font-family
和padding
会有效,但是按钮的原生外观会丢失,如果您完全重新设置按钮,这不是问题。
如果您想要一个使用继承font-family
的原生按钮,请使用<button>
元素而不是<input>
。
请参阅Codepen。
答案 3 :(得分:0)
我遇到了同样的问题。对我有用的是将样式直接添加到html中的input元素。我在React fyi中编码。
<input style={{fontFamily: "YOUR_FONT_CHOICE_HERE"}} />