Ich habe Probleme beim Einstellen der Überlaufrolle für Körperhöhe und Breite.
<style>
tbody{
height:50px;display:block;overflow:scroll
}
</style>
<h3>Table B</h3>
<table style="border: 1px solid red;width:300px;display:block">
<thead>
<tr>
<td>Name</td>
<td>phone</td>
</tr>
</thead>
<tbody style='height:50px;display:block;overflow:scroll'>
<tr>
<td>AAAA</td>
<td>323232</td>
</tr>
<tr>
<td>BBBBB</td>
<td>323232</td>
</tr>
<tr>
<td>CCCCC</td>
<td>3435656</td>
</tr>
</tbody>
</table>
Ich möchte Tabelle B wie Tabelle A mit Überlaufrolle.
Jede Hilfe wird geschätzt.
Vielen Dank, M.
Antworten:
Wenn Sie
tbody
eine Schriftrolle anzeigen möchten , verwandeln Sie sie in eineblock
.Um das Verhalten von beizubehalten
table
, verwandeln Sie sichtr
intable
.Um die Zellen gleichmäßig zu besprühen, verwenden Sie
table-layout:fixed;
DEMO
CSS für Ihren HTML-Test:
Wenn
tbody
keine Schriftrolle angezeigt wird, weil der Inhalt kleiner alsheight
oder istmax-height
, stellen Sie die Schriftrolle jederzeit ein mit :overflow-y:scroll;
. DEMO 2quelle
overflow:auto
durchoverflow-y: scroll
, um zu vermeiden, dass Überschriften 1em links bleiben, auch wenn der Körper keine Bildlaufleiste benötigt.Es ist eine einfache Möglichkeit, die Bildlaufleiste zum Tabellenkörper zu verwenden
quelle
width: 100px
nachtd, th
innen hinzufügentbody, thead
Ein anderer Ansatz besteht darin, Ihre Tabelle in ein scrollbares Element zu wickeln und die Kopfzellen so einzustellen, dass sie oben bleiben.
Der Vorteil dieses Ansatzes besteht darin, dass Sie die Anzeige auf tbody nicht ändern müssen und es dem Browser überlassen können, die Spaltenbreite zu berechnen, während die Kopfzellenbreiten mit den Spaltenbreiten der Datenzellen übereinstimmen.
quelle
height: 100%
Standardmäßig
overflow
gilt dies nicht für Tabellengruppenelemente, es sei denn, Sie geben eindisplay:block
an,<tbody>
und Sie müssen einposition:relative
unddisplay: block
an geben<thead>
. Überprüfen Sie die DEMO .quelle
Einfachste aller Lösungen:
Fügen Sie den folgenden Code in CSS hinzu:
quelle
tbody tr
Elemente auf der Seite ausgewählt werden. Ändern Sie zu:.tableClassName thead, .tableClassName tbody tr {...}
Ändern Sie Ihren zweiten Tabellencode wie unten.
JSFIDDLE DEMO
quelle
In meinem Fall wollte ich eine reaktionsschnelle Tabellenhöhe anstelle einer festen Höhe in Pixel haben, wie die anderen Antworten zeigen. Dazu habe ich den Prozentsatz der sichtbaren Höheneigenschaft und den Überlauf für div verwendet, der die Tabelle enthält:
Auf diese Weise wird die Tabelle zusammen mit der Fenstergröße erweitert.
quelle
Basierend auf dieser Antwort ist hier eine minimale Lösung, wenn Sie Bootstrap bereits verwenden:
Getestet auf Bootstrap v3
quelle
Ich denke, was Sie versuchen, ist, den Header fest zu halten und den Body-Inhalt zu scrollen. Sie können den Inhalt in zwei Richtungen scrollen:
tbody
Tag können Sie das nicht erreichen , weil Sie es zuweisendisplay:block
display:inline-block
das Layout der Tabelle oder wird.Hier ist eine Lösung mit
divs
: JSFiddleHTML:
CSS:
Erläuterung:
Du hast ein
sliding wrapper
die alle Daten enthält.Beachte das Folgende:
Es gibt einen Unterschied von 17px, da wir die Breite der Bildlaufleiste berücksichtigen müssen.
quelle
Webkit scheint intern
display: table-row-group
für dastbody
Tag zu verwenden. Derzeit gibt es einen Fehler beim Festlegen der Höhe: https://github.com/w3c/csswg-drafts/issues/476Hoffen wir, dass es bald gelöst wird.
quelle
HTML:
CSS:
das wird auch funktionieren:
quelle
Das Erstellen von Bildlauftabellen ist immer eine Herausforderung. Dies ist eine Lösung, bei der die Tabelle sowohl horizontal als auch vertikal mit fester Höhe auf dem Körper gescrollt wird, wodurch der Leser und der Körper "kleben" (ohne Anzeige: klebrig). Ich habe eine "große" Tabelle hinzugefügt, um sie zu zeigen. Ich habe mich von G-Cyrillus inspirieren lassen, um den Körper anzuzeigen: block; Wenn es jedoch um die Breite einer Zelle geht (sowohl im Header als auch im Body), hängt dies vom inneren Inhalt ab. Daher habe ich in jeder Zelle Inhalte mit einer bestimmten Breite hinzugefügt, sowohl in der ersten als auch in der minimalen ersten Zeile in tbody (die anderen Zeilen passen sich entsprechend an).
quelle