Verwenden Sie ein textarea
Element anstelle des input
Element:
<textarea cols="80" rows="1" style="overflow: visible" placeholder=
"blablabla bla lba bla bla bla blabla bla bla bla lba"></textarea>
Diese konsequenter produziert, wenn auch nicht vollständig konsistent Rendering. Die Einstellung overflow: visible
ist da, um IE Platz für 80 Zeichen zu reservieren, sonst passen nur 79 aufgrund der vertikalen Bildlaufleiste.
Warum tritt das Problem scheint mit input
:
Das Attribut size="80"
setzt die sichtbare Breite des Feldes auf die „durchschnittliche“ Breite von 80 Zeichen. Dies ist nicht genau definiert (was "Durchschnitt"?), Und Browser implementieren es sogar unlogisch: mit size="80"
neigt dazu, erheblich weniger Breite als 4 Mal die Standardbreite von 20 Zeichen zu geben. Also ist der Browser nicht einmal konsistent. Der Anteil ist abhängig von der Schriftart und vom Browser. (Dies geschieht auf anderen Browsern als auch.)
Wenn Sie halten müssen mit input
:
Sie style="width: 80ch"
nutzen könnten, aber nicht alle Browser unterstützen diese CSS3-Funktion, und es gibt keine Garantie, dass es umgesetzt wurde richtig. Die ch
Einheit ist definitionsgemäß die Fortschrittsbreite der Ziffer Null, '0', die in den meisten Schriftarten die gleiche ist wie die Fortschrittsbreite von Ziffern im Allgemeinen. (Z. B. Firefox implementiert fast das. Fast, aber nicht ganz.)
Sie könnten die Schriftart in <input>
Elemente auf einige Monospace-Schriftart festlegen. Dadurch wird das Problem nicht behoben, die Breiten werden jedoch näher an die angegebenen Breiten gebracht.
Same hier http://jsfiddle.net/qyMLQ/ –
Wenn das wahr wäre, könnte ich einen Inline-Stil hinzufügen, die den globalen Stil über fahren würde, nicht wahr? Aber das funktioniert nicht. – Rhubarb
@Rhubarb: Ja, vorausgesetzt, Sie überschreiben den korrekten Stil. –