2014-10-17 10 views
5

Diciamo che ho il seguente codiceHTML: è casella di immissione default/tenore calcolato in diverse altezze tutti i browser

.username { 
 
    font-size: 30px; 
 
    padding-top: 8px; 
 
    padding-bottom: 8px; 
 
    border: 2px solid #E0E0E0; 
 
}
<input class="username" type="text" />

Vedi demo in diretta su http://jsbin.com/qudorugoguya/1/edit?html,css,output

Capisco che il totale altezza = altezza del contenuto + padding-top + padding-bottom + (border-width x 2).

http://www.w3.org/TR/CSS21/box.html#box-dimensions

Tuttavia, quando la proprietà height non viene assegnato un valore, sembra che l'altezza del contenuto calcolato cambia da browser a browser. Come se fosse il risultato della dimensione del font + un numero arbitrario di pixel proporzionale alla dimensione del font.

Per diversi browser content height ha i seguenti valori:

  • Chrome 38: 34px
  • Firefox 33: 35px
  • IE 11: 34.5px
  • IE 8: 35px

Nota: ho ottenuto i valori dallo strumento di sviluppo incorporato di ciascun browser

Esiste un modo per ottenere valori coerenti dal browser al browser senza impostare la proprietà height né la proprietà line-height?

+0

Nota che il reset e il normalizzatore CSS non hanno nulla a che fare con questa domanda. Infatti, anche se in questo esempio si aggiunge un reset CSS, il comportamento è diverso, vedere da soli su http://jsbin.com/vecugikuyivo/1/edit –

+2

I fogli di stile di ripristino/normalizzazione CSS sono _supposed_ per fornire la coerenza cross-browser in termini di layout, caratteri, dimensionamento, ecc. Tuttavia, ho provato 6 diversi finora, e mentre tutti loro riescono in varie cose, nessuno di loro funziona per questo particolare problema. Quindi, ottima domanda! Ho fatto +1 su di esso e lo ho favorito, perché mi piacerebbe vedere una risposta facendo riferimento a un foglio di stile specifico che normalizza l'altezza di quell'ingresso su tutti i browser ... –

+0

+1 per testare i 6 diversi reset/normalizzatori –

risposta

0

No, non c'è modo di farlo oltre ai metodi che hai menzionato. Anche i ripristini/normalizzatori CSS useranno questi metodi dietro le quinte.

Se le altezze del contenuto del browser sono molto importanti per te, ti suggerisco di utilizzare le immagini.

Problemi correlati