oppa: (automatisches) Umbrechen von Text bereitet Probleme

Hallo,
ich habe auf meiner Webseite ein kleines Gästebuch programmiert.
Natürlich gibt es dort eine Textarea, wo man seinen Text eingeben kann, welcher dann gespeichert wird und hinterher in einem <div></div> wieder ausgegeben wird.
Was aber, wenn jemand Böses ganz viele Buchstaben hintereinander schreibt? (ohne Leerzeichen)
Dann wird das Layout der Seite zerstört.
Dem bin ich zuerst begegnet, indem ich für das <div> ein "overflow:auto;" festgelegt habe. Nun bleibt zwar das Seitenlayout vorhanden, weil bei zu langen Wörtern einfach nur ein Scrollbalken erscheint, aber Firefox und Opera (und vermutlich auch alle anderen) brechen den Text dann nicht mehr wie vorher automatisch um.
Wie kann ich erreichen, dass der Text im Normalfall umgebrochen wird und nur bei zu langen Wörtern der Scrollbalken erscheint?
Gruß.

  1. Natürlich gibt es dort eine Textarea, wo man seinen Text eingeben kann, welcher dann gespeichert wird und hinterher in einem <div></div> wieder ausgegeben wird.
    Was aber, wenn jemand Böses ganz viele Buchstaben hintereinander schreibt? (ohne Leerzeichen)

    Dann setzt du auf automatisierte Silbentrennung per JavaScript.

    Roland

    --
    Mac or PC?
    Classic Rap: MP3 96k • AAC+ 24k • WMA 32k
  2. Hi,

    warum fügst Du nicht einfach serverseitig Leerzeichen in zu lange Zeichenketten ein?

    freundliche Grüße
    Ingo

    1. Hi,

      warum fügst Du nicht einfach serverseitig Leerzeichen in zu lange Zeichenketten ein?

      woher weiss ich denn, wann bei der Darstellung beim User eine Zeichenkette zu lang ist (ohne clientseitige Lösung per JS bspw.)?

      Gruß Gunther

      1. Hi,

        warum fügst Du nicht einfach serverseitig Leerzeichen in zu lange Zeichenketten ein?

        woher weiss ich denn, wann bei der Darstellung beim User eine Zeichenkette zu lang ist (ohne clientseitige Lösung per JS bspw.)?

        Gruß Gunther

        Genau das ist das Problem. Ich möchte flexibel bleiben. Na klar, ich kann mit PHP nach jedem Xten Zeichen ein Leerzeichen einfügen oder noch ein paar komplexere Methoden benutzen. Ich kann auch mit Javascript die Fensterinhaltgröße abfragen und dann dementsprechend reagieren und so. Aber das ist eigentlich nur eine Notlösung.

        Kann man es dem Browser nicht so sagen, wie ich es möchte?

      2. Hi,

        woher weiss ich denn, wann bei der Darstellung beim User eine Zeichenkette zu lang ist (ohne clientseitige Lösung per JS bspw.)?

        das kannst Du nur in etwa schätzen, wenn der Inhalt eine bestimmte Maximalbreite nicht überschreitet bzw. überschreiten soll. Und das auch nur, wenn Schriftgröße und Boxbreite in em angegeben sind. Ich gehe aber davon aus, dass - abgesehen von Quellcode oder Links - 60 Zeichen mehr als großzügig bemessen sind und einen Eingriff rechtfertigt.

        freundliche Grüße
        Ingo

  3. Hi oppa!
    Prüf' doch einfach serverseitig, ob so ein überlanges Wort vorkommt (Text bei " " splitten, Länge der einzelnen Wörter ermitteln...)
    und wenn das der Fall ist, forciere den Umbruch nach x Zeichen durch nachträgliches einfügen eines <br/> oder blank in den String...
    Sollte dein Problem lösen...

    Grüsse, Richard

  4. Hallo,

    Was aber, wenn jemand Böses ganz viele Buchstaben hintereinander schreibt? (ohne Leerzeichen)
    Dann wird das Layout der Seite zerstört.

    dem kann man in gewissen "Grenzen" vorbeugen, allerdings meist nur durch Inkaufnahme anderer "Nachteile", wie du ja u.a. selber schon festgestellt hast.

    Dem bin ich zuerst begegnet, indem ich für das <div> ein "overflow:auto;" festgelegt habe.

    Das ist in der Regel meist die beste Lösung.

    Dem bin ich zuerst begegnet, indem ich für das <div> ein "overflow:auto;" festgelegt habe. Nun bleibt zwar das Seitenlayout vorhanden, weil bei zu langen Wörtern einfach nur ein Scrollbalken erscheint, aber Firefox und Opera (und vermutlich auch alle anderen) brechen den Text dann nicht mehr wie vorher automatisch um.

    Das verstehe ich nicht ganz. Was machen FF und Opera denn, anstatt den Text umzubrechen?

    Wie kann ich erreichen, dass der Text im Normalfall umgebrochen wird und nur bei zu langen Wörtern der Scrollbalken erscheint?

    overflow:auto; !?

    Mal ganz allgemein: Du bist da  auf ein "Problem" gestoßen, was viele, viele andere vor dir auch schon gehabt, bzw. immer noch haben. Und für das imho aktuell noch immer keine "einfache & zufriedenstellende" und vor allem _zuverlässige_Lösung gibt. Man kann sich nur mit mehr oder weniger Aufwand irgendwelcher "Krücken" bedienen, deren Erfolg nicht garantiert ist.

    Einige davon sind dir hier ja schon genannt worden. Ob, und wenn welche, du davon verwenden möchtest, musst du halt selbst entscheiden. Oder ob du halt gelegentlich die Einträge "kontrollierst" und dann manuelle Änderungen vornimmst.

    Diese Problematik verdeutlicht in meinen Augen mal wieder, dass die Entwicklung der Standards, sowie ihre Umsetzung seitens der Browser
    a) viel zu langsam von statten geht, und
    b) teilweise an den Erfordernissen der Praxis vorbeigeht!

    Bleibt zu hoffen, dass es irgendwann mal eine brauchbare Lösung für dieses täglich wiederkehrende Problem gibt.

    Gruß Gunther

    PS: In dem von Roland verlinkten Artikel im Weblog, kann man in den Kommentaren auch sehr gut die verschiedenen Meinungen & Ansichten einiger User herauslesen ;).

    1. Dem bin ich zuerst begegnet, indem ich für das <div> ein "overflow:auto;" festgelegt habe.

      Das ist in der Regel meist die beste Lösung.

      Könntet ihr eure Frauensachen bitte nebenan besprechen?

      Roland

      --
      Mac or PC?
      Classic Rap: MP3 96k • AAC+ 24k • WMA 32k
      1. Dem bin ich zuerst begegnet, indem ich für das <div> ein "overflow:auto;" festgelegt habe.

        Das ist in der Regel meist die beste Lösung.

        Könntet ihr eure Frauensachen bitte nebenan besprechen?

        Upps, ...
        Na ja, irgendwie hat's ja auch ganz entfernt irgendwie mit "overflow" zu tun, aber das wollen wir jetzt nicht weiter vertiefen ;).

        Gruß Gunther

        PS: Das vorher Geschriebene gilt natürlich auch außerhalb der Regel, will sagen:"Meist ist das ..."

  5. Hallo oppa!

    Was aber, wenn jemand Böses ganz viele Buchstaben hintereinander schreibt? (ohne Leerzeichen)

    Auf etwas 'unmögliches' umsteigen ;)

    Viele Grüße aus Frankfurt/Main,
    Patrick

    --

    _ - jenseits vom delirium - _
    [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
    Nichts ist unmöglich? Doch!
    Heute schon gegökt?