Okay, das verwirrt mich wirklich. Ich habe einige Inhalte in einem Div wie folgt:
<div style="background-color: green; width: 200px; height: 300px;">
Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.
</div>
Der Inhalt läuft jedoch (wie erwartet) über den DIV hinaus, da das Wort zu lang ist.
Wie kann ich den Browser zwingen, das Wort bei Bedarf zu "brechen", um den gesamten Inhalt darin zu platzieren?
html
css
line-breaks
Nathan Osman
quelle
quelle
Antworten:
Verwendenword-wrap:break-word;
Es funktioniert sogar in IE6, was eine angenehme Überraschung ist.word-wrap: break-word
wurde ersetzt, mitoverflow-wrap: break-word;
dem in jedem modernen Browser funktioniert. IE, ein toter Browser, wird sich für immer auf das Veraltete und Nicht-Standardische verlassenword-wrap
.Bestehende Verwendungen von
word-wrap
heute funktionieren immer noch, da es sich um einen Aliasoverflow-wrap
gemäß der Spezifikation handelt.quelle
table-layout: fixed;
auf die Tabelle anwendenword-wrap: break-word
hat bei mir nicht funktioniert, aberword-break: break-word
wie unten von @rahul vorgeschlagen.Ich bin mir nicht sicher über die Browserkompatibilität
Sie können auch das
<wbr>
Tag verwendenquelle
Dies könnte zu der akzeptierten Antwort für eine browserübergreifende Lösung hinzugefügt werden.
Quellen:
quelle
Ich habe gerade das gleiche Problem gegoogelt und meine endgültige Lösung HIER veröffentlicht . Es ist auch für diese Frage relevant.
Sie können dies einfach mit einem div tun, indem Sie ihm den Stil geben
word-wrap: break-word
(und möglicherweise müssen Sie auch seine Breite einstellen).Doch für Tabellen , müssen Sie auch gelten:
table-layout: fixed
. Dies bedeutet, dass die Spaltenbreiten nicht mehr fließend sind, sondern nur auf der Grundlage der Spaltenbreiten in der ersten Zeile (oder über angegebene Breiten) definiert werden. Lesen Sie hier mehr .Beispielcode:
quelle
width: 100%;
war der einzige Weg, dies für mich auf FF und Chrom zum Laufen zu bringen!​
ist die HTML-Entität für ein Unicode-Zeichen, das als Zero-Width-Space (ZWSP) bezeichnet wird. Dabei handelt es sich um ein unsichtbares Zeichen, das eine Zeilenumbruchmöglichkeit angibt. In ähnlicher Weise dient der Bindestrich dazu, eine Zeilenumbruchmöglichkeit innerhalb einer Wortgrenze anzugeben.quelle
​
Hat eine niedrigere Priorität als ein Leerraum (dh wenn einer in der Nähe ist, wird die Linie stattdessen in einem Leerraum unterbrochen).<wbr/>
Unicode-Äquivalent zu sein, nach dem ich gesucht habeEs wurde festgestellt, dass die Verwendung der folgenden Funktionen in den meisten gängigen Browsern (Chrome, IE, Safari iOS / OSX) mit Ausnahme von Firefox (v50.0.2) funktioniert, wenn Sie Flexbox verwenden und sich darauf verlassen
width: auto
.Hinweis: Wenn Sie keinen Autoprefixer verwenden, müssen Sie möglicherweise Browser-Herstellerpräfixe hinzufügen.
Eine andere Sache, auf die Sie achten sollten, ist, dass Text, der
für den Abstand verwendet wird, Zeilenumbrüche in der Mitte des Wortes verursachen kann.quelle
CSS
word-wrap:break-word;
, getestet in FireFox 3.6.3quelle
Ich habe mein Problem mit dem folgenden Code gelöst.
quelle
Entfernen Sie
white-space: nowrap
, falls vorhanden.Implementieren:
quelle
Leerzeichen werden vom Browser beibehalten. Der Text wird bei Bedarf umbrochen und in Zeilenumbrüchen angezeigt
DEMO
quelle
Von MDN :
So können Sie verwenden:
Kann ich verwenden ?
quelle
Zuerst sollten Sie die Breite Ihres Elements identifizieren. Z.B:
Wenn der Text die Elementbreite erreicht, wird er in Zeilen unterteilt.
quelle
Wie in der Antwort von @ davidcondrey erwähnt, gibt es nicht nur das ZWSP, sondern auch das SHY
­ ­
, das in sehr langen, konstruierten Wörtern (denken Sie an Deutsch oder Niederländisch) verwendet werden kann, die an der Stelle gebrochen werden müssen, an der Sie es möchten. Unsichtbar, aber es gibt einen Bindestrich in dem Moment, in dem er benötigt wird, wodurch sowohl das Wort verbunden als auch die Zeile bis zum Äußersten gefüllt bleiben.Auf diese Weise könnte das Wort luchthavenpolitieagent so notiert werden,
lucht­haven­politie­agent
dass es längere Teile als die Silben des Wortes ergibt.Obwohl ich nie etwas offizielles darüber gelesen habe, erreichen diese weichen Bindestriche in Browsern eine höhere Priorität als die offiziellen Bindestriche in den einzelnen Wörtern des Konstrukts ( wenn sie überhaupt eine Erweiterung dafür haben).
In der Praxis ist kein Browser in der Lage, ein so langes, konstruiertes Wort selbst zu brechen. auf kleineren Bildschirmen, was zu einer neuen Zeile oder in einigen Fällen sogar zu einer Ein-Wort-Zeile führt (wie wenn zwei dieser konstruierten Wörter folgen).
Zu Ihrer Information: Es ist niederländisch für Flughafenpolizisten
quelle
Wortumbruch: Normal scheint besser zu verwenden als Wortumbruch: Umbruchwort, da Umbruchwort initial wie EN durchbricht
quelle
Mach das:
quelle
Probieren Sie dies einfach in unserem Stil
quelle
normal
ist der Standardwertwhite-space
. Ich denke, dass das Hinzufügen keine Auswirkung auf das Beispiel in der Frage haben würde. Bitte korrigieren Sie mich, wenn ich mich irre.