In meiner Tabelle habe ich die Breite der ersten Zelle in einer Spalte festgelegt 100px
.
Wenn der Text in einer der Zellen in dieser Spalte jedoch zu lang ist, wird die Breite der Spalte größer als 100px
. Wie kann ich diese Erweiterung deaktivieren?
html
css
column-width
Mischa Moroshko
quelle
quelle
table-layout:fixed;
ist die LösungAntworten:
Ich habe ein bisschen damit gespielt, weil ich Probleme hatte, es herauszufinden.
Sie müssen die Zellenbreite (entweder einzustellen
th
odertd
arbeitete, habe ich beide) und stellen Sie dietable-layout
auffixed
. Aus irgendeinem Grund scheint die Zellenbreite nur dann fest zu bleiben, wenn auch die Tabellenbreite festgelegt ist (ich denke, das ist albern, aber was auch immer).Es ist auch nützlich, die
overflow
Eigenschaft so festzulegenhidden
, dass kein zusätzlicher Text aus der Tabelle austritt.Sie sollten sicherstellen, dass alle Rahmen und Größen auch für CSS belassen werden.
Ok, also hier ist was ich habe:
Hier ist es in JSFiddle
Dieser Typ hatte ein ähnliches Problem: Tabellenzellenbreiten - Breite korrigieren, lange Wörter umbrechen / abschneiden
quelle
overflow: visible
für die Tabellen der dynamischen Größe, solange die Größe der Zellen fixiert und Überlauf ist sichtbar spielt es keine Rolle , ob die Größe der Tabelle selbst größer oder kleiner als die tatsächlichen Zellen ist.Siehe: http://www.html5-tutorials.org/tables/changing-column-width/
Verwenden Sie nach dem Tabellen-Tag das col-Element. Sie benötigen kein schließendes Tag.
Wenn Sie beispielsweise drei Spalten hatten:
quelle
table-layout: fixed; width: 100%;
. Vielen Dank!col
dafür. Es schlägt die Verwendung von CSS vor, das auf a<td>
(oder a<th
>) angewendet wirdFügen Sie einfach ein
<div>
Tag hinzu<td>
oder<th>
definieren Sie die Breite darin<div>
. Das wird dir helfen. Sonst funktioniert nichts.z.B.
quelle
style="width: 50px"
auf dem<td>
<td>
nicht.Wenn Sie eine oder mehrere Spalten mit fester Breite benötigen, während die Größe anderer Spalten geändert werden soll, versuchen Sie, beide
min-width
undmax-width
denselben Wert festzulegen .quelle
table-layout: fixed;
nicht.Sie müssen dies in das entsprechende CSS schreiben
quelle
Was ich tue ist:
Stellen Sie die td-Breite ein:
Stellen Sie die td-Breite mit CSS ein:
Stellen Sie die Breite mit CSS erneut auf max und min ein:
Es klingt ein bisschen repetitiv, aber es gibt mir das gewünschte Ergebnis. Um dies mit Leichtigkeit zu erreichen, müssen Sie möglicherweise die CSS-Werte in eine Klasse in Ihrem Stylesheet einfügen:
dann:
Platzieren Sie das Klassenattribut nach
<td>
Belieben.quelle
Ich habe das benutzt
quelle
Wenn Sie kein festes Layout wünschen, geben Sie eine Klasse für die Spalte an, deren Größe entsprechend ist.
CSS:
HTML:
quelle
Es hilft auch, die letzte "Füllzelle" mit der Breite: auto einzufügen . Dies nimmt den verbleibenden Platz ein und lässt alle anderen Abmessungen wie angegeben.
quelle
Lassen Sie die akzeptierte Antwort auf kleine Bildschirme reagieren, wenn diese kleiner als die feste Breite sind.
HTML:
CSS
JS Fiddle
https://jsfiddle.net/w9s3ebzt/
quelle
Einstellen:
Hat für mich gearbeitet.
quelle
KAsun hat die richtige Idee. Hier ist der richtige Code ...
quelle
Gemäß meiner Antwort hier ist es auch möglich, einen Tabellenkopf (der leer sein kann) zu verwenden und relative Breiten für jede Tabellenkopfzelle anzuwenden. Die Breiten aller Zellen im Tabellenkörper entsprechen der Breite ihres Spaltenkopfs. Beispiel:
HTML
CSS
Zeige Ergebnis
Verwenden Sie alternativ
colgroup
wie in Hyathins Antwort vorgeschlagen.quelle
Ich verwende ein :: after-Element in der Zelle, in dem ich unabhängig vom vorhandenen Text eine minimale Breite festlegen möchte:
Ich muss weder die Breite des übergeordneten Tisches festlegen noch das Tabellenlayout verwenden.
quelle
Ich fand, dass KAsuns Antwort mit vw besser funktioniert als mit px wie folgt :
<td><div style="width: 10vw" >...............</div></td>
Dies war das einzige Styling, das ich brauchte, um die Spaltenbreite anzupassen
quelle
Sie müssen nicht festlegen
"fixed"
- Sie müssen lediglichoverflow:hidden
festlegen , da die Spaltenbreite festgelegt ist.quelle