Ich habe verwendet word-wrap: break-word
, um Text in div
s und span
s zu verpacken . In Tabellenzellen scheint es jedoch nicht zu funktionieren. Ich habe eine Tabelle width:100%
mit einer Zeile und zwei Spalten. Text in Spalten word-wrap
wird nicht umgebrochen , obwohl er wie oben beschrieben gestaltet ist . Dadurch überschreitet der Text die Grenzen der Zelle. Dies geschieht in Firefox, Google Chrome und Internet Explorer.
So sieht die Quelle aus:
td {
border: 1px solid;
}
<table style="width: 100%;">
<tr>
<td>
<div style="word-wrap: break-word;">
Looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong word
</div>
</td>
<td><span style="display: inline;">Short word</span></td>
</tr>
</table>
Das lange Wort oben ist größer als die Grenzen meiner Seite, aber es bricht nicht mit dem obigen HTML. Ich habe die folgenden Vorschläge zum Hinzufügen ausprobierttext-wrap:suppress
undtext-wrap:normal
, aber keiner hat geholfen.
html
css
html-table
Psychotik
quelle
quelle
white-space: pre-wrap
developer.mozilla.org/en-US/docs/Web/CSS/white-spaceAntworten:
Das Folgende funktioniert für mich in Internet Explorer. Beachten Sie das Hinzufügen des
table-layout:fixed
CSS-Attributsquelle
<colgroup>
, es hat dies für mich behoben.oder
quelle
<span>
.Word-wrap
wird Wörter nur brechen, wenn nötigtable-layout: fixed;
.Ein langer Versuch, aber überprüfen Sie mit Firebug (oder ähnlichem), ob Sie nicht versehentlich die folgende Regel erben:
Dies kann Ihr angegebenes Zeilenumbruchverhalten überschreiben .
quelle
white-space:normal;
Es stellt sich heraus, dass es keinen guten Weg gibt, dies zu tun. Das nächste, was ich kam, ist das Hinzufügen von "Überlauf: versteckt"; zum div um den Tisch und den Text zu verlieren. Die wirkliche Lösung scheint jedoch darin zu bestehen, den Tisch loszuwerden. Mit divs und relativer Positionierung konnte ich den gleichen Effekt erzielen, abzüglich des Erbes von
<table>
UPDATE 2015: Dies ist für diejenigen wie mich, die diese Antwort wollen. Nach 6 Jahren funktioniert dies dank aller Mitwirkenden.
quelle
Wie bereits erwähnt,
div
funktioniert das Einfügen des Textes fast. Sie haben soeben die angeben müssenwidth
von derdiv
, die für Layouts ist das Glück , die statisch sind.Dies funktioniert unter FF 3.6, IE 8, Chrome.
quelle
min-width: 100%
zusammen mit hinzufügen,width
um sicherzustellendiv
, dass die gesamte Zelle belegt wird.Long,Long,Long,Long,Long
. Ich möchte dies nach einem Komma (,) einschließen.Problemumgehung, die Overflow-Wrap verwendet und mit normalem Tabellenlayout + Tabellenbreite 100% einwandfrei funktioniert
https://jsfiddle.net/krf0v6pw/
HTML
CSS
Leistungen:
overflow-wrap:break-word
stattword-break:break-all
. Was besser ist, weil es versucht, zuerst Leerzeichen zu durchbrechen und das Wort nur dann abschneidet, wenn das Wort größer als der Container ist.table-layout:fixed
benötigt. Verwenden Sie Ihre reguläre automatische Größenanpassung.width
oder festmax-width
in Pixel zu definieren . Definieren Sie%
bei Bedarf das übergeordnete Element.Getestet in FF57, Chrome62, IE11, Safari11
quelle
Ändern Sie Ihren Code
zu
Beispiel
quelle
break-word
.Problem mit
ist , dass es nicht so gut , wenn Text funktioniert hat einige Räume, zB
Wenn das Wort
andthenlongerwithoutspaces
in einer Zeile in die Tabellenzelle passt, dieslong text with andthenlongerwithoutspaces
jedoch nicht, wird das lange Wort in zwei Teile geteilt, anstatt umbrochen zu werden.Alternative Lösung: Fügen Sie U + 200B ( ZWSP ), U + 00AD ( weicher Bindestrich ) oder U + 200C ( ZWNJ ) in jedes lange Wort nach beispielsweise dem 20. Zeichen ein (siehe jedoch Warnung unten):
Warnung : Das Einfügen zusätzlicher Zeichen mit der Länge Null hat keinen Einfluss auf das Lesen. Dies wirkt sich jedoch auf Text aus, der in die Zwischenablage kopiert wird (diese Zeichen werden natürlich auch kopiert). Wenn der Text in der Zwischenablage später in einer Suchfunktion in der Web-App verwendet wird, wird die Suche unterbrochen. Obwohl diese Lösung in einigen bekannten Webanwendungen zu finden ist, sollten Sie sie nach Möglichkeit vermeiden.
Warnung : Wenn Sie zusätzliche Zeichen einfügen, sollten Sie nicht mehrere Codepunkte innerhalb des Graphems trennen. Weitere Informationen finden Sie unter https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries .
quelle
é
können sie als zwei Codepunkte geschrieben werden). Wir meinen wahrscheinlich wirklich "Grapheme", aber ich kenne keine Sprache, die es trivial macht, diese zu durchlaufen.Schauen Sie sich diese Demo an
Hier ist der Link zum Lesen
quelle
break-all
wird der Browser vollständig zu Wort bricht ignorieren , wenn wohin mit Zeilenumbrüche, mit der Wirkung der Entscheidung , dass , selbst wenn Ihr Handy normale Prosa ohne sehr lange Wörter enthält, können Sie mit Zeilenumbrüche in der Mitte von Wörtern am Ende werden. Dies ist typischerweise unerwünscht.Getestet in IE 8 und Chrome 13.
Dadurch passt die Tabelle an die Breite der Seite an und jede Spalte nimmt 50% der Breite ein.
Wenn Sie die erste Spalte lieber mehr von der Seite zu nehmen, fügen Sie ein
width: 80%
zu dertd
wie im folgenden Beispiel, 80% mit dem Prozentsatz Ihrer Wahl ersetzen.quelle
Das einzige, was getan werden muss, ist, dem
<td>
oder dem<div>
Inneren<td>
je nach dem Layout, das Sie erreichen möchten, eine Breite hinzuzufügen .z.B:
oder
quelle
Die Antwort, die das Kopfgeld gewonnen hat, ist richtig, funktioniert jedoch nicht, wenn die erste Zeile der Tabelle eine zusammengeführte / verbundene Zelle enthält (alle Zellen erhalten die gleiche Breite).
In diesem Fall sollten Sie die Tags
colgroup
und verwendencol
, um sie richtig anzuzeigen:quelle
quelle
p
innerhalb einer Tabellenzelle einfügen, die keine feste Pixelbreite hat, wirdp
die Tabellenzelle mit ziemlicher Sicherheit entweder überlaufen oder nicht ausgefüllt.Es scheint, dass Sie
word-wrap:break-word;
ein Blockelement (div
) mit der angegebenen (nicht relativen) Breite festlegen müssen . Ex:oder mit
word-break:break-all
dem Vorschlag von Abhishek Simon.quelle
Das funktioniert bei mir:
Das Tabellenattribut lautet:
quelle
table-layout: fixed
, aber es gibt bereits eine viel ältere Antwort, die dies nahelegt, sodass diese Antwort keine neuen Informationen hinzufügt.Wenn Sie keinen Tabellenrand benötigen, wenden Sie Folgendes an:
quelle
table-layout: fixed
. Dieser fügt der Seite nichts Neues hinzu.Ich habe eine Lösung gefunden, die in Firefox, Google Chrome und Internet Explorer 7-9 zu funktionieren scheint. Für ein zweispaltiges Tabellenlayout mit langem Text auf der einen Seite. Ich habe überall nach ähnlichen Problemen gesucht, und was in einem Browser funktioniert hat, hat den anderen kaputt gemacht, oder das Hinzufügen weiterer Tags zu einer Tabelle scheint nur eine schlechte Codierung zu sein.
Ich habe dafür KEINEN Tisch benutzt. DL DT DD zur Rettung. Zumindest zum Korrigieren eines zweispaltigen Layouts ist dies im Grunde ein Glossar / Wörterbuch / Wortbedeutungs-Setup.
Und etwas generisches Styling.
Mit schwebendem Zeilenumbruch und Rand links bekam ich genau das, was ich brauchte. Ich dachte nur, ich würde dies mit anderen teilen, vielleicht hilft es jemand anderem mit einem zweispaltigen Layout im Definitionsstil, mit Problemen beim Umschließen der Wörter.
Ich habe versucht, Zeilenumbruch in der Tabellenzelle zu verwenden, aber es funktionierte nur in Internet Explorer 9 (und natürlich in Firefox und Google Chrome), hauptsächlich um den defekten Internet Explorer-Browser hier zu reparieren.
quelle
Tabellen werden standardmäßig umbrochen. Stellen Sie daher sicher, dass die Tabellenzellen wie folgt angezeigt werden
table-cell
:quelle
style = "Tabellenlayout: fest; Breite: 98%; Zeilenumbruch: Umbruchwort"
Demo - http://jsfiddle.net/Ne4BR/749/
Das hat bei mir super funktioniert. Ich hatte lange Links, die dazu führten, dass die Tabelle in Webbrowsern 100% überschritt. Getestet auf IE, Chrome, Android und Safari.
quelle
table-layout: fixed
" hinaus.Eine Lösung, die mit Google Chrome und Firefox funktioniert (nicht mit Internet Explorer getestet), besteht darin,
display: table-cell
ein Blockelement festzulegen.quelle
Sie können dies versuchen, wenn es Ihnen passt ...
Fügen Sie einen Textbereich in Ihr td ein und deaktivieren Sie ihn mit der Hintergrundfarbe Weiß und definieren Sie die Anzahl der Zeilen.
quelle