676 Stimmen

Die Tabellenspaltenbreite unabhängig von der Menge des Textes in den Zellen konstant halten?

In meiner Tabelle habe ich die Breite der ersten Zelle in einer Spalte auf 100px festgelegt.
Jedoch, wenn der Text in einer Zelle in dieser Spalte zu lang ist, wird die Breite der Spalte größer als 100px. Wie kann ich diese Ausdehnung deaktivieren?

6 Stimmen

stackoverflow.com/questions/1258416/word-wrap-in-a-html-tabl‌​e könnte Ihnen helfen, in die richtige Richtung zu zeigen.

3 Stimmen

In meinem Fall gab es keine Erweiterung, sondern das Gegenteil: unerwünschtes Schrumpfen der Breite trotz meiner expliziten Breitenangabe. lächerlich!

0 Stimmen

Die einzige richtige Lösung dafür besteht darin, colgroup mit cols zu verwenden und die Breite der cols festzulegen.

751voto

ptpaterson Punkte 8658

Ich habe damit gespielt, weil ich Schwierigkeiten hatte, es herauszufinden.

Sie müssen die Zellenbreite festlegen (entweder th oder td funktionierten, ich habe beide eingestellt) UND das table-layout auf fixed einstellen. Aus irgendeinem Grund bleibt die Zellenbreite nur fest, wenn auch die Tabellenbreite festgelegt ist (ich finde das albern, aber egal).

Außerdem ist es nützlich, die overflow-Eigenschaft auf hidden zu setzen, um zu verhindern, dass zusätzlicher Text aus der Tabelle herauskommt.

Sie sollten auch alle Rahmen und Größen für CSS festlegen.

Also hier ist, was ich habe:

table {
  border: 1px solid black;
  table-layout: fixed;
  width: 200px;
}

th,
td {
  border: 1px solid black;
  width: 100px;
  overflow: hidden;
}

    header 1
    header 234567895678657

    data asdfasdfasdfasdfasdf
    data 2

Hier ist es in JSFiddle

Dieser Typ hatte ein ähnliches Problem: Table cell widths - fixing width, wrapping/truncating long words

91 Stimmen

Es ist wichtig zu beachten, dass: „Der Browser legt dann die Spaltenbreiten basierend auf der Breite der Zellen in der ersten Zeile der Tabelle fest“, von stackoverflow.com/questions/570154/…

14 Stimmen

Es funktioniert, wenn die Tabellenbreite nicht festgelegt ist. jsfiddle.net/lavinski/CGCFW/3 Du brauchst nur eine dynamische Zeile, die den verbleibenden Platz einnimmt.

3 Stimmen

@DanielLittle Alternativ können Sie die Tabellenbreite auf 1px festlegen; mit overflow: visible für Tabellen variabler Größe, solange die Größe der Zellen festgelegt ist und der Überlauf sichtbar ist, spielt es keine Rolle, ob die Größe der Tabelle selbst größer oder kleiner als die tatsächlichen Zellen ist.

234voto

Hyathin Punkte 2209

Siehe: http://www.html5-tutorials.org/tables/changing-column-width/

Nach dem Tabellen-Tag verwenden Sie das Col-Element. Sie benötigen kein schließendes Tag.

Zum Beispiel, wenn Sie drei Spalten hätten:

    ...

2 Stimmen

@Sam, du hattest möglicherweise ein anderes Problem, das dies überschrieben hat, wie z.B. CSS, Inline-Styles oder falsche Doctype, etc.. Dies funktioniert definitiv, es ist der Standardweg, um Spaltenstile festzulegen.

0 Stimmen

Ich bin mir nicht sicher, ob dies überhaupt der "HTML5-Weg" ist. Es scheint, dass colgroup/col in html5 nur wirklich für das Markieren von Bereichen verwendet wird. MDN erwähnt nicht die Verwendung des Style-Attributs bei col-Tags (außer dass es von globalen Attributen erbt) und sagt nur von bgcolor: "...verwenden Sie die CSS-Eigenschaft... auf den entsprechenden -Elementen." developer.mozilla.org/de/docs/Web/HTML/Element/col.

10 Stimmen

Hat für mich mit Tabellenstil table-layout: fixed; width: 100%; funktioniert. Danke!

151voto

KAsun Punkte 1495

Fügen Sie einfach das

-Tag innerhalb von oder hinzu und definieren Sie die Breite innerhalb von

. Das wird Ihnen helfen. Nichts anderes funktioniert.

z.B.

...............

3 Stimmen

Ich habe diese Lösung mit der Angabe von min-width/max-width für dieselbe Pixelbreite kombiniert, nur um auf der sicheren Seite zu sein. Endlich funktioniert es. Ich weiß nicht, warum ich all diese zusätzlichen Runden drehen muss, um es wirklich zu reparieren, lächerlich...

1 Stimmen

Unsicher, wie dies besser ist als das Festlegen desselben CSS style="width: 50px" auf der

5 Stimmen

@mmcrae Es ist besser, weil es funktioniert, die Breite auf zu setzen nicht.

76voto

scrrr Punkte 4885

Wenn Sie eine oder mehrere Spalten mit fester Breite benötigen, während andere Spalten sich automatisch anpassen sollten, versuchen Sie beide min-width und max-width auf denselben Wert einzustellen.

1 Stimmen

Dies hat für mich funktioniert, als das explizite Festlegen der Breite mit table-layout: fixed; nicht funktionierte.

45voto

vinoth kumar Punkte 599

Du musst dies innerhalb des entsprechenden CSS schreiben

table-layout:fixed;

0 Stimmen

Die Tabelle besser mit div-Tags umgeben und innerhalb des div-Tags overflow:auto verwenden.

0 Stimmen

Hat bei mir funktioniert, als ich es mit Spaltengruppen kombiniert habe: ...

.

0 Stimmen

Dieser Artikel von Chris Coyer erklärt es gut: css-tricks.com/fixing-tables-long-strings

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X