Frage von beecoopcool, 56

[HTML/CSS] Bessere Zeilenumbrüche?

Hallo, ich arbeite zur Zeit an einem kleinen Projekt und bin nun auf folgendes Problem gestoßen: Wenn der Nutzer einen Text eingibt und diesen dann abschickt, macht HTML ganz komische Zeilenumbrüche: Manchmal kommt der letzte Buchstabe in eine neue Zeile ohne irgendein Bindestrich etc.. Wie bekomme ich es nun hin, dass es bessere Zeilenumbrüche gibt(entweder neue Zeile, wenn das Wort zu lang ist oder "ganz normal" mit Bindestrich)?

Vielen Dank für eure Antworten

Antwort
von Minilexikon, 21

Wenn du das Formular mit PHP auswertest, kannst du mit der Funktion n2br() vom Benutzer eingegebenen Zeilenumbrüche in HTML-Zeilenumbrüche umwandeln: http://php.net/manual/de/function.nl2br.php

Antwort
von matmann, 28

HTML macht da meines wissen nichts. Das hängt mit verschiedenen Faktoren zusammen. Einerseits kann man in der textarea vom Formular einen Wert für die maximale Breite angeben. Aber wie der User darauf reagiert, das kann man nicht sicher vorhersagen. Vielleicht tippen die einfach ohne jemals die Returntaste zu betätigen. Oder falls die es doch machen, kann es bei dir trotzdem ganz anders aussehen. Beispielsweise wenn der User einen anderen Zeichensatzt nutzt als der Server. Dann kann es z.B. passieren, das bei der Eingabe ein Ä nur ein Zeichen im String belegt, und mit möglicherweise UTF8 auf dem Server sind es dagegen zwei. Und schon passt der Zeilenumbruch nicht mehr so ganz.

Da hilft nur ein Auswerten des Strings mit z.B. PHP oder Perl. Das muss man mit dem Formular ja eh machen. Also schreibt man dafür am besten ein Skript, das solche Fehler im String sucht, um diese zu korrigieren. Am einfachsten wäre es hierfür, einfach den String Zeichen für Zeichen analysieren und dabei gezielt nach Steuerzeichen und Sonderzeichen suchen. Die Sonderzeichen belässt man, während man die Steuerzeichen entfernt und nur bei einem eindeutigen Absatz diesen mit den entsprechenden Steuerzeichen zulässt. Werden für jede Zeile Zeilenumbrüche zwingend benötigt, dann kann man darüber hinaus noch nach z.B. jedem 50. Zeichen das Wortende suchen und einen Zeilenumbruch an die gweünschte Stelle einbauen. Da sind dem Skriptschreiber alle denkbaren Möglichkeiten offen :)

Antwort
von Bujin, 35

Hi, ich nehme mal an du benutzt einfach

<input type="text" value="Beispieltext">

um einen ganzen Text einzulesen? Das ist nicht richtig da das nur für eine einzige Zeile gedacht ist. Willst du mehrzeiligen Text aufnehmen solltest du 

<textarea> Beispieltext </textarea>

benutzen

Kommentar von beecoopcool ,

Nein ich nutze schon Textarea, nur wenn der User keinen Zeilenumbruch macht, kommt es ja trotzdem zu den Umschönen Zeilenumbrüchen

Kommentar von MonkeyKing ,

Kannst du den ganzen "textarea" tag den du verwendest hier mal posten?

Kommentar von Bujin ,

Du kannst einfach ein

wrap="soft"

einfügen. Besser ist es aber wie schon erwähnt mit CSS. 

textarea {

word-wrap: break-word;
}

Ich kann dir im gleichen Zuge auch zu dem kostenlosen Editor "Brackets" empfehlen. Der ist für HTML/CSS gemacht und spuckt dir alles aus was du bei "textarea" benutzen könntest wenn du anfängst zu schreiben. 

Kommentar von Bujin ,

statt break-word solltest du in deinem Fall mal rumprobieren was am besten passt. Ich würde mal auf "normal" tippen hab es aber nicht ausprobiert. 

Kommentar von medmonk ,

Gibt hier ja doch den ein oder anderen, der eine gute IDE zu schätzen weiß. Ich liebe Brackets Vor allem mit dunklem Monokai Dark Soda Theme. ;-)

LG medmonk 

Kommentar von RedKungFuMastr ,

Nicht Cross-Browser kompatibel

http://caniuse.com/#feat=wordwrap

Antwort
von webflexer, 32

Wo wird der Text eingegeben und wo wird dann der Text angezeigt?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten