2012-05-03 14 views
5

Sto cercando di rendere un input simile al testo normale. L'obiettivo è disegnare una span, quando l'utente fa clic sull'intervallo che nasconde e visualizza un input che sembra testo semplice, ma modificabile dall'utente.Rimuovi il riempimento superiore e inferiore nell'input di testo in Chrome/Firefox

In Chrome e Firefox non può sbarazzarsi di superiore e inferiore imbottiture, anche se ho impostato le proprietà padding e CSS margine a 0.

mio CSS simile a questa:

input.myInput { 
    font-family: "segoe ui"; 
    font-size: 20px; 
    padding: 0px; 
    margin: 0px; 
    outline: none; 
    border: 0px; 
    vertical-align: baseline; 
} 

vedere che tipo di carattere la dimensione è impostata su 20px. Chrome e Firefox aggiungono 4px padding-top e padding-bottom, in modo che l'input sia alto 28px, non 20px come previsto.

+3

Potete fornire un violino o di demo dal vivo? – Jrod

+0

Grazie Jrod, in realtà mi ha aiutato a vedere il problema. Creando la demo di jsfiddle, ho notato che non c'era un problema simile quando si scriveva lo stile da zero. Il mio ha modificato l'altezza della linea in CSS, ed è per questo che non corrisponde all'altezza . Grazie! –

risposta

6

È necessario reimpostare lo line-height dell'elemento di input su 20px. Per impostazione predefinita, alcuni browser aggiungono 4px (2 in alto + 2 in basso) per inserire l'altezza della linea dell'elemento.

2

Potrebbe essere il tuo carattere. Prova a impostare direttamente l'altezza CSS dell'ingresso o prova a regolare l'altezza della linea.

1

Come suggerito da Diode, è sufficiente aggiungere altezza al proprio input.

input.myInput { 
    font-family: "segoe ui"; 
    font-size: 20px; 
    height: 20px; 
    padding: 0px; 
    margin: 0px; 
    outline: none; 
    border: 0px; 
    vertical-align: baseline; 
} 

line-height non funziona

Problemi correlati