Saya menghadapi masalah saat mengatur gulir overflow lebar tinggi badan.
<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>
Saya ingin tabel B seperti Tabel A dengan scroll overflow.
Bantuan apa pun akan dihargai.
Terima kasih banyak, M.
Jawaban:
jika Anda ingin
tbody
menampilkan gulungan, ubah menjadiblock
.Untuk menjaga perilaku
table
, berubahtr
menjaditable
.untuk menyemprot sel secara merata, gunakan
table-layout:fixed;
DEMO
CSS untuk tes HTML Anda:
Jika
tbody
tidak menunjukkan gulungan, karena kandungan kurang dariheight
ataumax-height
, mengatur gulir kapan saja dengan:overflow-y:scroll;
. DEMO 2sumber
overflow:auto
denganoverflow-y: scroll
untuk menghindari header tetap 1em tersisa meskipun badan tidak memerlukan scrollbar.Ini adalah cara sederhana untuk menggunakan scroll bar ke badan tabel
sumber
width: 100px
ketd, th
dalamtbody, thead
Pendekatan lain adalah membungkus tabel Anda dalam elemen yang dapat digulir dan mengatur sel header agar tetap di atas.
Keuntungan dari pendekatan ini adalah Anda tidak perlu mengubah tampilan pada tbody dan Anda dapat membiarkan browser menghitung lebar kolom sambil menjaga lebar sel header sejalan dengan lebar kolom sel data.
sumber
height: 100%
tfoot
dengan posisi dasar lengket 0 dan berfungsi seperti pesona. Jawaban yang bagus!Secara default
overflow
tidak berlaku untuk elemen grup tabel kecuali jika Anda memberikandisplay:block
kepada<tbody>
juga Anda harus memberikanposition:relative
dandisplay: block
kepada<thead>
. Periksa DEMO .sumber
Solusi paling sederhana:
Tambahkan kode di bawah ini di CSS:
sumber
tbody tr
elemen pada halaman. Ubah ke:.tableClassName thead, .tableClassName tbody tr {...}
Ubah kode tabel kedua Anda seperti di bawah ini.
JSFIDDLE DEMO
sumber
Dalam kasus saya, saya ingin memiliki tinggi tabel yang responsif, bukan tinggi tetap dalam piksel seperti yang ditunjukkan oleh jawaban lain. Untuk melakukan itu saya menggunakan persentase properti ketinggian yang terlihat dan melimpah pada div yang berisi tabel:
Dengan cara ini tabel akan meluas bersama dengan jendela yang diubah ukurannya.
sumber
Berdasarkan jawaban ini , berikut adalah solusi minimal jika Anda sudah menggunakan Bootstrap:
Diuji pada Bootstrap v3
sumber
Saya kira apa yang Anda coba lakukan, adalah menjaga header tetap dan menggulir konten tubuh. Anda dapat menggulir konten menjadi 2 arah:
tbody
tag, karena menetapkandisplay:block
ataudisplay:inline-block
akan merusak tata letak tabel.Berikut solusinya menggunakan
divs
: JSFiddleHTML:
CSS:
Penjelasan:
Anda memiliki
sliding wrapper
yang akan berisi semua data.Perhatikan hal-hal berikut:
Ada perbedaan 17px karena kita perlu mempertimbangkan lebar scrollbar.
sumber
Webkit tampaknya menggunakan secara internal
display: table-row-group
untuktbody
tag. Saat ini ada bug dengan pengaturan ketinggian: https://github.com/w3c/csswg-drafts/issues/476Semoga segera teratasi.
sumber
HTML:
CSS:
ini akan bekerja juga:
sumber
Membuat tabel gulir selalu menjadi tantangan. Ini adalah solusi dimana meja digulir secara horizontal dan vertikal dengan ketinggian tetap pada tbody membuat theader dan tbody "stick" (tanpa display: sticky). Saya telah menambahkan tabel "besar" hanya untuk ditampilkan. Saya mendapat inspirasi dari G-Cyrillus untuk membuat tbody display: block; Tapi ketika sampai pada lebar sel (baik di header dan body), itu tergantung pada konten di dalamnya. Oleh karena itu saya menambahkan konten dengan lebar spesifik di dalam setiap sel, baik di thead dan baris pertama minimum di tbody (baris lain menyesuaikannya)
sumber