Ich habe Eingabe- und Beschriftungsfelder:
<label class="adm" for="UserName">User name</label>
<input class="adm" id="UserName" name="UserName" size="30" type="text" value="" />
und 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; }
Wenn der Code in Firefox geöffnet wird, sind die Schriftarten nicht identisch. Firebug zeigt, dass beide "sollten" erben und wenn ich mir berechnet anschaue, zeigt es, dass das Label Verdana verwendet. Die Eingabe zeigt jedoch, dass "MS Shell Dlg" verwendet wird.
Kann jemand erklären, was passiert und warum es nicht den normalen CSS-Regeln zu entsprechen scheint?
Antworten:
Es erbt nicht standardmäßig, aber Sie können festlegen, dass es mit CSS erbt
Demo: http://jsfiddle.net/gaby/pEedc/1/
quelle
input
Innere setzenlabel
,label
erbt das Tag nicht Standard-CSSFormularelemente (Eingaben / Textbereich / usw.) erben keine Schriftinformationen. Sie müssen die Schriftfamilie für diese Elemente festlegen.
quelle
Drei Jahre später, ich finde es seltsam ,
<input>
Elemente der Typenreset
,submit
undbutton
nicht erbenfont-family
in Chrome oder Safari. Ich entdeckte, dass sie auch keine Polsterung erhalten würden.Aber wenn ich Schlamassel mit bestimmten Eigenschaften, wie
background
,border
oder dieser seltsamenappearance
Eigenschaft, dannfont-family
undpadding
hat Wirkung, aber das native Look and Feel der Taste verloren, was kein Problem ist , wenn Sie vollständig die Tasten Restyling werden.Wenn Sie eine native Schaltfläche mit geerbtem Aussehen wünschen
font-family
, verwenden Sie das<button>
Element anstelle von<input>
.Siehe Codepen .
quelle
Ich hatte das gleiche Problem. Was für mich funktioniert hat, war das Hinzufügen des Stils direkt zum Eingabeelement im HTML. Ich codiere in React fyi.
<input style={{fontFamily: "YOUR_FONT_CHOICE_HERE"}} />
quelle