Der Martin: Textareagröße dynamisch anpassen

Beitrag lesen

Hallo,

Hallo, gleich mal vorweg: Ich weiß, dass mein Problem leicht lösbar wäre, wenn ich eine nicht-proportionale Schriftart wie Courier verwenden würde

nein, das würde die Aufgabe kein bisschen erleichtern.

weil dann könnte ich die Zeichen in der Textarea ganz einfach auszählen

Könnte man. Das ändert aber nichts daran, dass du die Schrift, die beim Besucher *wirklich* verwendet wird, nicht kennst. Weder die Schriftart, noch die Größe - denn dein Stylesheet gibt ja nur eine Darstellungsempfehlung, auf deren Gültigkeit du dich nicht verlassen kannst. Was, wenn die gewünschte Schrift auf dem System des Besuchers nicht verfügbar ist und automatisch eine passende Ersatzschrift gewählt wird? Was, wenn der Nutzer eine wesentlich größere Mindest-Schriftgröße in seinen Browsereinstellungen gesetzt hat? Was, wenn das Styling von Formularelementen aus Gründen der Usability generell stark eingeschränkt ist?

Wenn ein Nutzer Text in die Textarea schreibt, soll die Textarea bei einem automatischen (wenn eine Zeile voll ist, wird in die nächste Zeile gewechselt) oder einem manuellen (User drückt Enter) Zeilenumbruch automatisch um eine Zeile ergänzt werden. Außerdem soll, wenn der Nutzer eine Zeile löscht, die Textarea auch um eine Reihe vermindert werden etc.

Warum? Wer möchte sowas?
Ganz ehrlich: Mich würde ein solches Verhalten eher stören oder sogar verunsichern, weil es unüblich ist.

Zur Erklärung: a.rows = a.rows + (a.scrollHeight - a.clientHeight) / 19 deshalb, weil der Differenz zwischen Scroll- und Clientheight (zumindest bei Google Chrome) immer ein Faktor von 19 ist.

Das mag auf *deinem* System so sein. Das ist aber mehr oder weniger Zufall und hängt von den auf deinem Rechner festgelegten Schriftdimensionen ab. Wenn du den konstanten Faktor wirklich allgemein halten willst, müsstest du die Höhendifferenz eines garantiert einzeiligen und eines garantiert zweizeiligen textarea-Elements mit gleicher Formatierung ausmessen. Die Elemente müssen ja dabei nicht sichtbar sein.

Es wäre nett, wenn mir jemand sagen könnte, was er von meinem bisherigen Ansatz hält und wie ich mein Problem lösen kann!

Tja, wie gesagt: Ich kann mich für die Idee nicht begeistern und hätte lieber ein scrollendes textarea-Element mit gleichbleibender Höhe.

Ciao,
 Martin

--
Kopflosigkeit schützt nicht vor Migräne.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(