Tolong buat judul tabel Anda tetap
- Di web, kita sering berhadapan dengan set data besar atau tata letak tabel.
- Masalah muncul saat mulai menggulir tabel yang memiliki ratusan baris.
- Ketika header tabel menghilang, pengguna sulit mengingat tiap kolom terkait dengan apa.
Header tetap
- Header tetap terlihat seperti sihir, tetapi implementasinya sangat mudah.
- Cukup tambahkan dua properti CSS ke
thead:
position: sticky;
top: 0;
- Dengan tingkat dukungan global sekitar 96%,
sticky didukung secara stabil di banyak browser.
- Ini juga membantu meningkatkan pengalaman pengguna.
Pendapat GN⁺
- Saat menangani tabel besar di situs web, memastikan pengguna tetap dapat melihat judul tabel dengan mudah saat mereka menggulir ke bawah sangat meningkatkan pengalaman pengguna.
- Fakta bahwa header tabel bisa dibuat tetap dengan mudah menggunakan properti CSS
position: sticky; adalah informasi yang berguna bagi para pengembang web.
- Karena fitur ini didukung secara luas, pengembang web dapat mengetahui bahwa mereka bisa mengimplementasikannya secara stabil di berbagai browser.
1 komentar
Komentar Hacker News
position: sticky;kelihatannya mudah, tetapi masalah muncul ketika melakukan sesuatu pada isi tabel. Misalnya, saya menambahkan fitur untuk memulihkan posisi scroll saat pengguna menggulir tabel, meninggalkan halaman, lalu kembali lagi, tetapi posisi yang dipulihkan selalu bergeser satu baris ke bawah. Jika dilihat melalui header tabel yang transparan, baris yang diinginkan memang ada di paling atas, tetapi karena tertutup header, baris berikutnya yang terlihat sebagai baris pertama. Jika posisi scroll disesuaikan dengan memperhitungkan tinggi header, awalnya memang berfungsi, tetapi kadang meleset beberapa piksel. Ini terjadi karena tabelnya besar sehingga ada lazy loading berdasarkan event scroll, dan karena menggunakan automatic table layout, terkadang sel header menjadi terlalu sempit sehingga kata terbungkus ke baris berikutnya dan tinggi total header bertambah. Solusi akhirnya adalah membuatResizeObserverpada elemen header agar posisi scroll bisa disesuaikan secara dinamis saat tinggi berubah. Dokumentasi ResizeObserver<th>, kemungkinan besar memang itulah perilaku yang mereka inginkan.position: stickydipakai pada elemen<thead>dan<tr>: tautan issue Chromiumtopdiatur dengan memperhitungkan border (misalnya 0 alih-alih -1px), isi tabel bisa dicegah mengalir ke atas header. Dibandingkan dua contoh CodePen: CodePen lama dan CodePen yang diperbaiki