Rumah >hujung hadapan web >tutorial css >Bagaimana untuk Mencipta Pengepala Tetap dan Jadual Lajur Pertama Tetap Hanya Menggunakan CSS?

Bagaimana untuk Mencipta Pengepala Tetap dan Jadual Lajur Pertama Tetap Hanya Menggunakan CSS?

Patricia Arquette
Patricia Arquetteasal
2024-12-17 08:48:25847semak imbas

How to Create a Fixed Header and Fixed First Column Table Using Only CSS?

Cara Membuat Jadual dengan Pengepala Tetap dan Lajur Tetap Hanya Menggunakan CSS

Masalah

Dalam usaha untuk memaparkan data secara teratur , anda menyasarkan untuk mencipta jadual HTML yang menampilkan pengepala tetap dan lajur pertama tetap. Namun, penerokaan anda telah menemui pelbagai penyelesaian yang bergantung pada JavaScript atau jQuery, memperkenalkan potensi kelemahan pada penyemak imbas mudah alih disebabkan oleh tingkah laku menatal yang kurang ideal. Oleh itu, usaha anda kini tertumpu pada mencari penyelesaian CSS tulen.

Penyelesaian

Nasib baik, kedudukan: sifat melekit, disokong dalam versi moden Chrome, Firefox dan Edge, menawarkan cara untuk mencapai tingkah laku yang diingini. Anda boleh menggabungkannya dengan limpahan: sifat tatal untuk mencipta jadual dinamik dengan elemen pengepala dan lajur tetap.

Langkah

  1. Bekas: Mulakan dengan meletakkan jadual anda di dalam div induk dan menggunakan limpahan: tatal ke div, dengan itu membolehkan menatal.
  2. Kemelekatan Tajuk dan Lajur: Manfaatkan kedudukan: sifat melekit bersama-sama dengan nilai atas, kanan atau kiri untuk menentukan tepi mana elemen jadual harus dipatuhi.
  3. Kemelekatan Tajuk Lajur Pertama: Gunakan sifat thead th:first-child to pastikan pengepala lajur pertama kekal di tepi kiri.

Contoh

Penanda HTML:

<div class="container">
  <table>
    <thead>
      <tr>
        <th></th>
        <th>headheadhead</th>
        <th>headheadhead</th>
        <th>headheadhead</th>
        <th>headheadhead</th>
        <th>headheadhead</th>
        <th>headheadhead</th>
        <th>headheadhead</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <th>head</th>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
      </tr>
      <tr>
        <th>head</th>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
      </tr>
      <tr>
        <th>head</th>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
      </tr>
      <tr>
        <th>head</th>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
      </tr>
      <tr>
        <th>head</th>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
      </tr>
      <tr>
        <th>head</th>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
        <td>body</td>
      </tr>
    </tbody>
  </table>
</div>

CSS:

div {
  max-width: 400px;
  max-height: 150px;
  overflow: scroll;
}

thead th {
  position: -webkit-sticky; /* for Safari */
  position: sticky;
  top: 0;
}

tbody th {
  position: -webkit-sticky; /* for Safari */
  position: sticky;
  left: 0;
}

thead th:first-child {
  left: 0;
  z-index: 2;
}

thead th {
  background: #000;
  color: #FFF;
  z-index: 1;
}

tbody th {
  background: #FFF;
  border-right: 1px solid #CCC;
  box-shadow: 1px 0 0 0 #ccc;
}

table {
  border-collapse: collapse;
}

td,
th {
  padding: 0.5em;
}

Pelaksanaan ini membolehkan anda menatal kedua-duanya menegak dan mendatar sambil mengekalkan pengepala dan lajur pertama pada tempatnya, memberikan pengalaman pengguna yang lebih baik untuk melihat data jadual.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Pengepala Tetap dan Jadual Lajur Pertama Tetap Hanya Menggunakan CSS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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 sebelumnya:Antara Muka Penjejak KewanganArtikel seterusnya:Antara Muka Penjejak Kewangan