Gibt es eine Möglichkeit, lange Wörter in ein Div zu wickeln?


172

Ich weiß, dass Internet Explorer einen Zeilenumbruchstil hat, aber ich würde gerne wissen, ob es eine browserübergreifende Methode gibt, um Text in einem div zu schreiben.

Am besten CSS, aber JavaScript-Snippets würden auch gut funktionieren.

edit: Ja, ich beziehe mich auf lange Saiten, Prost Leute!


7
Der Zeilenumbruch erfolgt standardmäßig. Meinen Sie das Umwickeln, wenn es keine separaten Wörter gibt?
Quentin

Antworten:


313

Beim Lesen des Originalkommentars sucht Rutherford nach einer browserübergreifenden Methode zum Umbrechen von ungebrochenem Text (abgeleitet durch die Verwendung von Zeilenumbruch für IE, mit dem ungebrochene Zeichenfolgen gebrochen werden sollen).

/* Source: http://snipplr.com/view/10979/css-cross-browser-word-wrap */
.wordwrap { 
   white-space: pre-wrap;      /* CSS3 */   
   white-space: -moz-pre-wrap; /* Firefox */    
   white-space: -pre-wrap;     /* Opera <7 */   
   white-space: -o-pre-wrap;   /* Opera 7 */    
   word-wrap: break-word;      /* IE */
}

Ich habe diese Klasse jetzt für ein bisschen benutzt und funktioniert wie ein Zauber. (Hinweis: Ich habe nur in FireFox und IE getestet)


Alter Beitrag, aber es scheint keine Leerzeichen zu rendern, wenn sich der IE im Mackenmodus befindet.
Jeremy

2
Ich verwende Firefox 24.6.0 und genau das word-wrap: break-wordhat funktioniert.
user545424

3
Word-wrap: break-wordObwohl von Microsoft erstellt, ist es jetzt Teil des CSS 3-Standards und macht den Trick :-)
Pascal_dher

37

Die meisten der vorherigen Antworten haben in Firefox 38.0.5 bei mir nicht funktioniert. Das hat ...

<div style='padding: 3px; width: 130px; word-break: break-all; word-wrap: break-word;'>
    // Content goes here
</div>

Dokumentation:


2
Vielen Dank! Dies ist die einzige Antwort, die funktioniert hat (
Wortumbruch


12

Die Lösung von Aaron Bennet funktioniert perfekt für mich, aber ich musste diese Zeile aus seinem Code entfernen -> white-space: -pre-wrap;weil es einen Fehler gab, so ist der endgültige Arbeitscode der folgende:

.wordwrap { 
   white-space: pre-wrap;      /* CSS3 */   
   white-space: -moz-pre-wrap; /* Firefox */   
   white-space: -o-pre-wrap;   /* Opera 7 */    
   word-wrap: break-word;      /* IE */
}

vielen Dank


1
Aaron Bennett hat diese Antwort 2 Jahre vor Ihnen erwähnt. Was Sie hier getan haben, bringt keinen Mehrwert.
AaA

6
Hallo, wie Sie sehen können, wenn Sie beide Antworten noch einmal lesen, sage ich nur, dass Aarons Lösung in Ordnung ist, aber ich habe in einer der Zeilen, die er geschrieben hat, einen Fehler erhalten, also habe ich ihn einfach in die Lösung geändert, für die er funktioniert hat mich. Vielleicht sollte ich einen Kommentar in seiner Antwort haben, ich weiß es, sorry & danke
Hugo

Ich musste diesen "Leerraum: -pre-wrap" hinzufügen und es funktionierte :)
Ravi Khambhati

0

Wie David erwähnt, DIVs tun Wrap Worte standardmäßig.

Wenn Sie sich auf wirklich lange Textzeichenfolgen ohne Leerzeichen beziehen, verarbeite ich die Zeichenfolge serverseitig und füge leere Bereiche ein:

thisIsAreallyLongStringThatIWantTo<span></span>BreakToFitInsideAGivenSpace

Es ist nicht genau, da es Probleme mit der Schriftgröße und dergleichen gibt. Die Option span funktioniert, wenn der Container eine variable Größe hat. Wenn es sich um einen Container mit fester Breite handelt, können Sie einfach Zeilenumbrüche einfügen.


@ TomHert das ist wirklich seltsam. Aber gut, IE. Es funktioniert nie. Das heißt, dies wurde vor 5 Jahren veröffentlicht. CSS3 bietet jetzt einige bessere Optionen für den Zeilenumbruch, die der IE möglicherweise für developer.mozilla.org/en-US/docs/Web/CSS/word-wrap
DA

Ja, ich weiß, ich war nur schockiert von der Einfachheit dieser Lösung, dass ich sie ausprobieren musste :)
Tom Hert

0

Sie können versuchen, eine Breite für das Div anzugeben, sei es in Pixel, Prozent oder Ems. An diesem Punkt bleibt das Div in dieser Breite und der Text wird automatisch innerhalb des Div umbrochen.


Versuchen Sie, 10px Breite einzustellen ... und verwenden Sie dann ein Wort länger als 10px
Paul Zahra
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.