Ich habe eine HTML-Tabelle mit table-layout: fixed
und eine td mit einer festgelegten Breite. Die Spalte wird weiterhin erweitert, um den Inhalt von Text aufzunehmen, der kein Leerzeichen enthält. Gibt es eine andere Möglichkeit, dies zu beheben, als den Inhalt jedes td in ein div zu packen?
Beispiel: http://jsfiddle.net/6p9K3/29/
<table>
<tbody>
<tr>
<td style="width: 50px;">Test</td>
<td>Testing 1123455</td>
</tr><tr>
<td style="width: 50px;">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</td>
<td>B</td>
</tr>
</tbody>
</table>
table
{
table-layout: fixed;
}
td
{
border: 1px solid green;
overflow: hidden;
}
Im Beispiel sehen Sie, dass die Spalte mit AAAAAAAAAAAA ... erweitert wird, obwohl sie explizit auf 50px eingestellt ist.
Antworten:
Geben Sie die Breite der Tabelle an:
Siehe jsFiddle
quelle
table-layout: fixed; width: 100%;
.Versuchen Sie, das folgende CSS zu untersuchen:
Webbrowser sollten standardmäßig keine "Wörter" aufteilen, sodass das normale Verhalten eines Browsers auftritt. Sie können dies jedoch mit der CSS-Direktive für Zeilenumbrüche überschreiben.
Sie müssten eine Breite für die Gesamttabelle und dann eine Breite für die Spalten festlegen. Breite: 100%; sollte auch in Ordnung sein, abhängig von Ihren Anforderungen.
Die Verwendung von Zeilenumbruch ist möglicherweise nicht das, was Sie möchten. Es ist jedoch nützlich, um alle Daten anzuzeigen, ohne das Layout zu verformen.
quelle
Machen Sie den Tisch vor dem CSS steinhart. Stellen Sie Ihre Tabellenbreite fest und verwenden Sie dann eine 'Steuerungs'-Zeile, wobei jeder td eine explizite Breite hat, die sich alle zur Breite im Tabellen-Tag addieren.
Wenn Sie Hunderte von HTML-E-Mails erstellen müssen, um überall zu arbeiten, zuerst den richtigen HTML-Code verwenden und dann mit CSS arbeiten, können Sie viele Probleme in allen IE-, Webkit- und Mozillas-Problemen umgehen.
so:
Hält einen Tisch bei 300px Breite. Sehen Sie sich Bilder an, die extrem größer als die Breite sind
quelle
width
Attribut ist veraltet, verwenden Sie entweder die CSS -width
Eigenschaft oder die empfohlene HTML 5 Weg zu Satz Spaltenbreite, Verwendung<colgroup>
und<col>
Elemente direkt nach dem<table>
Tag und vor irgendwelchen<thead>
,<tbody>
oder<tr>
Elemente.Sie können eine hinzufügen ,
div
mit demtd
das, dann Stil. Es sollte wie erwartet funktionieren.Dann die CSS.
quelle
Sie können auch mit "overflow: hidden" oder "overflow-x: hidden" (nur für die Breite) arbeiten. Dies erfordert eine definierte Breite (und / oder Höhe?) Und möglicherweise auch einen "display: block".
"Überlauf: Versteckt" verbirgt den gesamten Inhalt, der nicht in das definierte Feld passt.
Beispiel:
http://jsfiddle.net/NAJvp/
HTML:
CSS:
EDIT: Schande über mich, ich habe gesehen, Sie verwenden bereits "Überlauf". Ich denke, es funktioniert nicht, weil Sie "display: block" nicht auf Ihr Element setzen ...
quelle
Sie können auch Prozentsätze verwenden und / oder in den Spaltenüberschriften angeben:
Der Bonus mit Prozentsätzen ist eine geringere Codepflege: Sie können Ihre Tabellenbreite ändern, ohne die Spaltenbreiten neu angeben zu müssen.
Vorsichtsmaßnahme: Nach meinem Verständnis wird die in Pixel angegebene Tabellenbreite in HTML 5 nicht unterstützt. Sie müssen stattdessen CSS verwenden.
quelle
Ich würde versuchen, es auf maximale Breite einzustellen: 50px;
quelle
Das funktioniert bei mir
quelle