Ich möchte Text umbrechen, der einem <td>
Element hinzugefügt wird . Ich habe es mit versucht style="word-wrap: break-word;" width="15%"
. Der Text wird jedoch nicht umbrochen. Muss es 100% breit sein? Ich muss andere Steuerelemente anzeigen, sodass nur 15% Breite verfügbar sind.
html
css
html-table
word-wrap
zool
quelle
quelle
Antworten:
TD-Text umbrechen
Zuerst den Tischstil festlegen
Stellen Sie dann TD Style ein
quelle
white-space: normal
im td-Stil verwenden, damit die Verpackung funktioniert (anstelle derword-wrap:break-word
)white-space:normal;
white-space: pre-wrap
Sie diese Option, wenn Sie Leerzeichen beibehalten müssen.HTML-Tabellen unterstützen einen CSS-Stil "Tabellenlayout: fest", der verhindert, dass der Benutzeragent die Spaltenbreiten an seinen Inhalt anpasst. Vielleicht möchten Sie es verwenden.
quelle
Ich glaube, Sie sind auf den Haken 22 von Tischen gestoßen. Tabellen eignen sich hervorragend zum Einwickeln von Inhalten in eine tabellarische Struktur und eignen sich hervorragend zum "Dehnen", um den Anforderungen der darin enthaltenen Inhalte gerecht zu werden.
Standardmäßig werden die Tabellenzellen so gedehnt, dass sie zum Inhalt passen. Ihr Text macht ihn also nur breiter.
Es gibt einige Lösungen.
1.) Sie können versuchen, eine maximale Breite am TD festzulegen.
2.) Sie können versuchen, Ihren Text in ein Umbruchelement (z. B. einen Bereich) einzufügen und Einschränkungen festzulegen.
Beachten Sie jedoch, dass ältere IE-Versionen keine minimale / maximale Breite unterstützen.
Da der IE die maximale Breite nativ nicht unterstützt, müssen Sie einen Hack hinzufügen, wenn Sie ihn erzwingen möchten. Es gibt verschiedene Möglichkeiten, einen Hack hinzuzufügen. Dies ist nur eine.
Beim Laden der Seite erhalten Sie nur für IE6 die gerenderte Breite der Tabelle (in Pixel), dann 15% davon und wenden diese als Breite auf den ersten TD in dieser Spalte (oder TH, wenn Sie Überschriften haben) erneut in Pixel an .
quelle
table-layout:fixed
wird das Problem der expandierenden Zelle lösen, aber ein neues erstellen. IE versteckt standardmäßig den Überlauf, aber Mozilla rendert ihn außerhalb der Box.Eine andere Lösung wäre zu verwenden:
overflow:hidden;width:?px
quelle
Credits zu http://www.blakems.com/archives/000077.html
quelle
Dies funktionierte bei mir mit einigen CSS-Frameworks (Material Design Lite [MDL]).
quelle
verwenden
word-break
kann es ohne Styling verwendet werden ,table
umtable-layout: fixed
quelle
Das funktioniert wirklich gut:
Sie können für alle Ihre die gleiche Breite verwenden
<div
oder die Breite jeweils anpassen, um Ihren Text zu brechen, wo immer Sie möchten.Auf diese Weise müssen Sie nicht mit festen Tabellenbreiten oder komplexen CSS herumspielen.
quelle
Ich hatte einige meiner
td
s mit:Das hat es für mich gelöst:
quelle
Um die Zellenbreite genau auf das längste Wort des Textes einzustellen, setzen Sie einfach die Breite der Zelle auf
1px
dh
Das ist experimentell und ich habe es beim Ausprobieren erfahren
Live-Geige: http://jsfiddle.net/harshjv/5e2oLL8L/2/
quelle
Es ist möglich, dass dies funktioniert, aber es könnte sich irgendwann in der Zukunft als störend erweisen (wenn nicht sofort).
Der Grund für das
span
ist, dass, wie von anderen hervorgehoben, a<td>
typischerweise erweitert wird, um den Inhalt aufzunehmen, während a gegeben werden<span>
kann - und erwartet wird, dass es eine festgelegte Breite behält; Dasoverflow: hidden
soll, kann aber nicht verbergen, was sonst dazu führen würde, dass sich das<td>
ausdehnt.Ich würde empfehlen, die
title
Eigenschaft des Bereichs zu verwenden, um den Text anzuzeigen, der in der visuellen Zelle vorhanden (oder abgeschnitten) ist, damit der Text noch verfügbar ist (und wenn Sie nicht möchten / brauchen, dass Personen ihn sehen, warum dann? in erster Linie denke ich ...).Wenn Sie eine Breite für das
td {...}
td definieren, wird es erweitert (oder möglicherweise verkleinert, aber ich bezweifle es), um seine implizite Breite zu füllen (wie ich es sehetable-width/number-of-cells
), scheint eine angegebene Tabellenbreite nicht zu erstellen das gleiche Problem.Der Nachteil ist ein zusätzliches Markup, das für die Präsentation verwendet wird.
quelle
Das Umbrechen von Text erfolgt automatisch in Tabellen. Der Fehler, den die Leute beim Testen begehen, besteht darin, hypothetisch eine lange Zeichenfolge wie "ggggggggggggggggggggggggggggggggggggggggggggggg" anzunehmen und sich darüber zu beschweren, dass sie nicht umwickelt wird. Praktisch gibt es kein so langes Wort auf Englisch, und selbst wenn es eines gibt, besteht eine schwache Chance, dass es darin verwendet wird
<td>
.Versuchen Sie, mit Sätzen wie "Gegenposition ist unter bestimmten Umständen abergläubisch" zu testen.
quelle
Wenden Sie Klassen auf Ihre TDs an, wenden Sie die entsprechenden Breiten an (denken Sie daran, eine davon ohne Breite zu belassen, damit der Rest der Breite angenommen wird), und wenden Sie dann die entsprechenden Stile an. Kopieren Sie den folgenden Code, fügen Sie ihn in einen Editor ein und zeigen Sie ihn in einem Browser an, damit er funktioniert.
quelle
quelle