Rumah > hujung hadapan web > tutorial css > 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
Lepaskan: 2024-11-08 07:35:02
asal
889 orang telah melayarinya

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>
Salin selepas log masuk
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 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