Rumah > hujung hadapan web > tutorial css > Bagaimana untuk Mencipta Jadual Pengepala Tetap dengan Bar Skrol Mendatar dan Menegak?

Bagaimana untuk Mencipta Jadual Pengepala Tetap dengan Bar Skrol Mendatar dan Menegak?

Barbara Streisand
Lepaskan: 2024-11-26 09:06:09
asal
387 orang telah melayarinya

How to Create a Fixed Header Table with Both Horizontal and Vertical Scrollbars?

Jadual pengepala tetap dengan bar skrol mendatar dan bar skrol menegak dihidupkan

Masalah:

Mencipta jadual pengepala tetap dengan bar skrol mendatar dan menegak boleh mencabar apabila kedua-dua bar skrol diperlukan. Isu timbul apabila bekas luar diletakkan secara mutlak, yang boleh menyebabkan bar skrol menegak mengganggu pengepala, menghalangnya daripada dipasang di tempatnya.

HTML:

Struktur HTML adalah agak mudah:

<div class="outer-container">
  <div class="inner-container">
    <div class="table-header">...</div>
    <div class="table-body">...</div>
  </div>
</div>
Salin selepas log masuk

CSS:

Gaya CSS meletakkan bekas luar secara mutlak dan mengendalikan kandungan yang melimpah:

.outer-container {
  position: absolute;
  overflow: hidden;
}

.inner-container {
  overflow-x: scroll;
}

.table-header {
  position: absolute;
  width: 100%;
}

.table-body {
  overflow-y: scroll;
  height: calc(100% - 40px); /* Adjust this value to match the height of the header */
}
Salin selepas log masuk

Penyelesaian:

Kunci untuk menyelesaikan isu ini adalah dengan mengendalikan penatalan pengepala dan badan jadual dalam penyegerakan. Berikut ialah penyelesaian yang mungkin:

  1. Tetapkan kedudukan .table-header kepada mutlak. Ini akan mengekalkan kedudukannya dalam .bekas dalam.
  2. Tambahkan pendengar acara tatal pada .table-body.
  3. Dalam pengendali acara, tetapkan offset kiri .table- pengepala kepada negatif kedudukan tatal mendatar .table-body. Ini akan menggerakkan pengepala bersama-sama dengan badan semasa ia menatal secara mendatar.

JavaScript/jQuery:

Skrip berikut boleh digunakan untuk melaksanakan penatalan penyegerakan:

$(".table-body").scroll(function() {
  $(".table-header").offset({ left: -this.scrollLeft });
});
Salin selepas log masuk

Penjelasan:

Skrip ini memastikan bahawa apabila pengguna menatal .table-body secara mendatar, .table-header akan menatal bersamanya, mengekalkannya tetap kedudukan.

Nota:

Laraskan sifat ketinggian .table-body dalam CSS agar sepadan dengan ketinggian .table-header. Ini akan menghalang badan daripada melimpah ke pengepala.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Jadual Pengepala Tetap dengan Bar Skrol Mendatar dan Menegak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan