Breite des Textfeldes = Breite des Tahoma-Textes
Daniel
- javascript
0 Axel Richter0 Daniel
Hallo Forum,
meiner JS-Funktion wird ein String übergeben - nehmen wir mal an "Guten Abend".
Nun will ich mit document.write ein Input-Feld (Text) ausgeben, das - wenn ich ihm "Guten Abend" als Value zuweise - genauso breit (size=x) ist wie der Text.
Soweit eigentlich ganz einfach - könnte man meinen... Das (oder besser: mein) Problem ist nämlich, dass die Schriftart des Input-Feldes Tahoma ist (sein muss!), und nicht etwa Courier...(ergo funktioniert size = string.length leider nicht)
Gibt es dennoch irgendeine Möglichkeit, die Breite des Textfeldes wie gewünscht festzulegen?
Gruss,
Daniel
PS: Die Berechnung könnte u.U. auch in VBscript/ASP erfolgen, dann würde ich die Breite einfach als zusätzlichen Parameter der JS-Funktion übergeben...
Hallo,
meiner JS-Funktion wird ein String übergeben - nehmen wir mal an "Guten Abend".
Nun will ich mit document.write ein Input-Feld (Text) ausgeben, das - wenn ich ihm "Guten Abend" als Value zuweise - genauso breit (size=x) ist wie der Text.
Soweit eigentlich ganz einfach - könnte man meinen... Das (oder besser: mein) Problem ist nämlich, dass die Schriftart des Input-Feldes Tahoma ist (sein muss!), und nicht etwa Courier...(ergo funktioniert size = string.length leider nicht)
Gibt es dennoch irgendeine Möglichkeit, die Breite des Textfeldes wie gewünscht festzulegen?
Eine genaue Berechnung kann es für Proportionalschriften nicht geben. Ich lebe aber relativ gut mit einer Näherung:
Länge in px = anzZeichen*19/40*Schriftgröße in px.
Wie ich auf 19/40 komme steht hier: http://forum.de.selfhtml.org/archiv/2003/12/66532/#m379847.
Natürlich werden Texte mit übermäßig vielen breiten Buchstaben nicht in das Feld passen und für Texte mit übermäßig vielen schmalen Buchstaben ist das Feld zu breit.
viele Grüße
Axel
hi,
Eine genaue Berechnung kann es für Proportionalschriften nicht geben. Ich lebe aber relativ gut mit einer Näherung:
Länge in px = anzZeichen*19/40*Schriftgröße in px.
nützt dir bei browsern, die das vergrössern der schriftgrösse tortz px-angabe erlauben, ggf. aber wenig.
ausserdem verstehe ich den ganzen ansatz nicht.
wenn feldbreite = exakte textlänge sein soll, nehme ich an, dass der user am dem text sowieso nichts ändern können soll.
dann sollte man aber gar nicht erst ein input-feld nehmen, sondern gleich in inline element wie z.b. <span>, dass den "vorteil" hat, sie ja sowieso automatisch der breites des textes anzupassen.
irgendwie denkt der frager hier um die ecke, würde ich sagen.
gruss,
wahsaga
kann ich denn in <span> auch den Text verändern wie in einem input-Feld...?
hi,
kann ich denn in <span> auch den Text verändern wie in einem input-Feld...?
als seitenersteller? per javascript, klar. ist auch nicht viel schwieriger als bei einem input-feld.
z.b. über http://selfhtml.teamone.de/javascript/objekte/node.htm#data
als user/betrachter der seite? nein, eher nicht.
aber in dem falle wäre ja, wie schon gesagt, eine der genauen textbreite entsprechende feldbreite m.E. gar nicht sinnvoll.
gruss,
wahsaga
Fürs Archiv... im ASPforum.de habe ich den Tipp bekommen, dass das serverseitig mit ASPImage von serverobjects.com geht.
Gruss,
Daniel