Wie kann ich langen Text / Wort in einer festen Breite umbrechen oder brechen?


104

Ich möchte eine Spanne mit einer festen Breite erstellen, die, wenn ich etwas in die Spanne eintippe <span>lgasdfjksdajgdsglkgsadfasdfadfasdfadsfasdfasddkgjk</span>, wie eine lange Zeichenfolge von Text ohne Abstand, die Wörter in die nächste Zeile umbricht oder umbricht.

Irgendwelche Ideen?

Antworten:


191

Sie können die CSS-Eigenschaft verwenden word-wrap:break-word;, mit der Wörter unterbrochen werden, wenn sie für Ihre Bereichsbreite zu lang sind.

span { 
    display:block;
    width:150px;
    word-wrap:break-word;
}
<span>VeryLongLongLongLongLongLongLongLongLongLongLongLongExample</span>


1
Funktioniert gut für die asp.net-Etikettensteuerung. Vielen Dank!
— etlds

41
Das Hinzufügen white-space: normalhilft, das äußere Styling zu überschreiben, das im Weg stehen könnte :) .. inline-blockfunktioniert genauso gut wieblock
— Katia

Was ist mit zwei Abschnitten, die sich innerhalb eines Blockelements befinden?
— Daniel Springer

Wenn Sie nach der Verwendung dieser Antwort immer noch Probleme haben, geben Sie unbedingt eine 'Breite' an, da dies sonst möglicherweise nicht funktioniert
— Staccato,

Es muss eine Breite haben, um zu wissen, wo zu brechen ist
— DFSFOT

40

Versuchen Sie folgendes CSS mit dem Zusatz von white-space:

span {
    display: block;
    word-wrap:break-word;
    width: 50px;
    white-space: normal
}

5
Vielen Dank! Ich konnte nicht herausfinden, warum mein Text nie umbrochen wurde! Leerraum war der Grund.
— mdiehl13

1
Mein Problem wurde auch behoben, als ich white-space: normal
— sagte

Hier ist eine Referenztabelle für den Fall, dass Sie Leerzeichen und Zeilenumbruch
— Hritik

16

So was

DEMO

  li span{
    display:block;
    width:50px;
    word-break:break-all;
}

Mein Freund, den ich möchte, wenn die Spannweite eingestellt wird: 50px; Werte in meiner Spanne werden nur in 50px angezeigt und andere Werte gehen zur nächsten Zeile und werden in 50px angezeigt !!!
— کثیری

1
@ mamal10 Überprüfen Sie die Lösung von Maxime Lorant.
— Mr_Green

3

Standardmäßig spanist a ein inlineElement ... das ist also nicht das Standardverhalten.

Sie können das spanVerhalten auf diese Weise ändern display: block;, indem Sie es Ihrem CSS hinzufügen .

span {
    display: block;
    width: 100px;
}


0

Nur um den praktischen Umfang der Frage zu erweitern und als Anhang zu den gegebenen Antworten: Manchmal kann es notwendig sein, die Selektoren etwas genauer anzugeben.

Wenn Sie die gesamte Spanne als display: inline-block definieren , fällt es Ihnen möglicherweise schwer, Bilder anzuzeigen.

Deshalb definiere ich lieber eine Spanne wie folgt:

span {
  display:block;
  width:150px;
  word-wrap:break-word;      
}
p span, a span,
h1 span, h2 span, h3 span, h4 span, h5 span {
  display:inline-block;
}
img{
  display:block;
}

0

In meinem Fall hat display: block das Design wie beabsichtigt beschädigt.

Das max-widthAnwesen hat mich gerade gerettet.

und für das Styling können Sie auch verwenden text-overflow: ellipsis.

Mein Code war

max-width: 255px
overflow:hidden
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.