Rumah  >  Artikel  >  hujung hadapan web  >  Bolehkah saya menggunakan `col`, `colgroup` dan CSS `:hover` untuk menyerlahkan lebih daripada sel jadual tunggal?

Bolehkah saya menggunakan `col`, `colgroup` dan CSS `:hover` untuk menyerlahkan lebih daripada sel jadual tunggal?

Patricia Arquette
Patricia Arquetteasal
2024-11-08 07:35:02704semak imbas

Can I use `col`, `colgroup`, and CSS `:hover` to highlight more than just a single table cell?

Bolehkah col, colgroup dan pseudoclass "hover" css digunakan untuk lebih daripada sel tunggal?

Untuk menyerlahkan baris jadual dan lajur pada hover tetikus, kelas pseudo CSS seperti ":hover" boleh digunakan. Tetapi bagaimana jika anda ingin menyerlahkan bukan sahaja sel tunggal, tetapi keseluruhan baris atau lajur, termasuk pengepala?

Penyelesaian CSS tulen boleh mencapai ini menggunakan ::before dan ::after pseudo-elements. Elemen ini menambah kandungan sebelum dan selepas elemen yang dipilih, masing-masing. Begini caranya:

  1. Buat Elemen Sorotan:

    • Tambah ::sebelum untuk penyerlahan baris dan ::selepas untuk penyerlahan lajur selepas elemen yang berkaitan (cth., tr, td, th).
    • Gunakan kedudukan mutlak untuk membenarkan elemen ini meluas ke mana-mana sahaja.
    • Letakkannya di luar sempadan elemen menggunakan nilai negatif untuk kiri/atas (: :sebelum) atau kiri/bawah (::selepas).
    • Tetapkan lebar/tinggi yang lebih besar untuk menutup keseluruhan baris/lajur.
  2. Sembunyikan Limpahan Sorotan:

    • Halang unsur serlahan daripada melimpah ke meja dengan menetapkan limpahan: tersembunyi di atas meja.
    • Ini memastikan kawasan meja bersih sambil memastikan serlahan. melangkaui sel individu.
  3. Tambah Pemilih Baris/Lajur:

    • Untuk menyerlahkan hanya baris atau lajur semasa, gunakan elemen ::before dan ::after pada :hover th (headers) dan :hover .row / .col (pemilih berasaskan kelas untuk baris/lajur).

Kod CSS di bawah melaksanakan prinsip ini:

table { overflow: hidden; }
td, th, .row, .col { cursor: pointer; padding: 10px; position: relative; }
td:hover::before, .row:hover::before { background-color: #FFA; content: '<pre class="brush:php;toolbar:false"><table>
  <tr>
    <th></th><th>50kg</th><th>55kg</th><th>60kg</th><th>65kg</th><th>70kg</th>
  </tr>
  <tr class="row">
    <th class="row">160cm</th><td>20</td><td>21</td><td>23</td><td>25</td><td>27</td>
  </tr>
  <tr class="row">
    <th class="row">165cm</th><td>18</td><td>20</td><td>22</td><td>24</td><td>26</td>
  </tr>
</table>
a0'; height: 100%; left: -5000px; position: absolute; top: 0; width: 10000px; z-index: -1; } td:hover::after, .col:hover::after { background-color: #FFA; content: 'a0'; height: 10000px; left: 0; position: absolute; top: -5000px; width: 100%; z-index: -1; }

HTML sebahagian besarnya kekal tidak berubah, tetapi termasuk nama kelas untuk baris dan lajur:

Penyelesaian ini berfungsi dalam penyemak imbas moden, memanjangkan kesan sorotan tuding ke seluruh baris dan lajur dengan elegan.

Atas ialah kandungan terperinci Bolehkah saya menggunakan `col`, `colgroup` dan CSS `:hover` untuk menyerlahkan lebih daripada sel jadual tunggal?. 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