2014-10-01 14 views
7

Ho notato che in caso di tag <button>, la famiglia di font non viene ereditata automaticamente; o devo specificare che piace in modo esplicito:Perché la "famiglia di caratteri" non è stata ereditata automaticamente nei tag "<button>"?

<button style="font-family: some_style;">Button</button> 

o utilizzare ereditare proprietà come questa:

<button style="font-family: inherit;">Button</button> 

Tuttavia, il font-family è ereditato automaticamente in caso di altri tag, il <a> tag per esempio.

Perché abbiamo questo problema con i tag <button>?

Ecco uno DEMO.

+0

Poiché gli elementi sono resi in modo diverso da ciascun utente-agente (browser) che ha i propri stili specifici. Non esiste un pulsante 'elemento' concordato che sia un browser" standard ". –

+0

possibile duplicato di [Perché gli stili CSS non sono ereditati dai campi modulo HTML?] (Http://stackoverflow.com/questions/11250259/why-are-css-styles-not-inherited-by-html-form-fields) –

risposta

11

Elemento modulo non ereditare le impostazioni del carattere, è necessario impostare manualmente queste proprietà.

Se si utilizza la dichiarazione del font per es. corpo,

body {font-family: arial, sans-serif} 

uso solo

body, input, textarea {font-family: arial, sans-serif} 

o

input, textarea {font-family: inherit} 
1

Se si controlla il vostro demo in un browser usando i suoi strumenti di sviluppo, si può vedere che la famiglia di font dell'elemento button viene dal foglio di stile del browser . Lo mostrano in diversi modi, e possono utilizzare diversi tipi di carattere, ma il principio è lo stesso: esiste una dichiarazione per la proprietà font-family dell'elemento in un foglio di stile, quindi la proprietà non può essere ereditata (a meno che non sia esplicitamente impostare il valore inherit su di esso, ovviamente).

Questo non è definito nelle specifiche, ma nemmeno tali impostazioni del foglio di stile del browser sono proibite da loro e sono pratica comune.

Problemi correlati