Utilizzare un elemento textarea
al posto dell'elemento input
:
<textarea cols="80" rows="1" style="overflow: visible" placeholder=
"blablabla bla lba bla bla bla blabla bla bla bla lba"></textarea>
Questo produce più costante, anche se il rendering non del tutto coerente. L'impostazione overflow: visible
è lì per fare in modo che IE abbia spazio per 80 caratteri, altrimenti solo 79 si adatta, a causa della barra di scorrimento verticale.
Perché il problema sembra con input
:
L'attributo size="80"
imposta la larghezza visibile del campo alla larghezza “medio” di 80 caratteri. Questo non è esattamente definito (quale "media"?), Ei browser lo implementano anche in modo illogico: l'uso di size="80"
tende a dare una larghezza notevolmente inferiore a 4 volte la larghezza predefinita di 20 caratteri. Quindi il browser non è nemmeno coerente. La proporzione dipende dal tipo di carattere e dal browser. (Questo accade su altri browser come bene.)
Se è necessario continuare a utilizzare input
:
Si potrebbe usare style="width: 80ch"
, ma non tutti i browser supportano questa funzionalità CSS3, e non v'è alcuna garanzia che è stato implementato propriamente. L'unità ch
è per definizione la larghezza di avanzamento della cifra zero, '0', che nella maggior parte dei caratteri è uguale alla larghezza di avanzamento delle cifre in generale. (Ad esempio, Firefox implementa quasi correttamente questo quasi, ma non del tutto.)
È possibile impostare il font negli elementi <input>
in un font monospace. Questo non rimuove il problema, ma rende le larghezze più vicine alle larghezze specificate.
fonte
2012-04-08 04:48:44
Stesso qui http://jsfiddle.net/qyMLQ/ –
Se ciò fosse vero, Potrei aggiungere uno stile in linea che over-ride lo stile globale, giusto? Ma questo non funziona. – Rhubarb
@ Raubarb: Sì, a condizione di ignorare lo stile corretto. –