Jadual Kandungan
Walaupun berkesan, pendekatan ini mungkin memerlukan pelarasan untuk bekas scrollable (mis., Slider mendatar). Dalam kes sedemikian, membungkus
Ini menunjukkan penyelesaian CSS tulen yang kuat untuk cabaran interaksi yang sama. Dengan memanfaatkan pemilih CSS lanjutan dan kawalan acara penunjuk, kami mencapai kesan yang canggih tanpa menggunakan JavaScript, yang membawa kepada kod yang lebih bersih dan lebih diselenggara. Ini menonjolkan keupayaan CSS yang semakin meningkat dan menggalakkan meneroka penyelesaian asli sebelum menambah kerumitan JavaScript.
Rumah hujung hadapan web tutorial css Kesan fokus galeri CSS tulen dengan: tidak

Kesan fokus galeri CSS tulen dengan: tidak

Mar 10, 2025 am 10:40 AM

A Pure CSS Gallery Focus Effect with :not

Sebelum ini, menggayakan semua elemen dalam bekas kecuali yang dilanda JavaScript yang sering melibatkan JavaScript. Ini biasanya bermakna menambah atau mengeluarkan kelas pada peristiwa

dan mouseenter. Walaupun berfungsi, penyelesaian CSS tulen sering lebih baik. Artikel ini memperincikan pendekatan CSS sahaja, yang pada mulanya diilhamkan oleh teknik yang digunakan dalam mencipta semula animasi seperti laman utama Netflix. Walau bagaimanapun, percubaan sebelumnya menggunakan kaedah ini gagal pada susun atur berasaskan grid kerana jurang antara unsur-unsur. Artikel ini membentangkan penyelesaian yang elegan mengendalikan jurang ini. mouseleave

markup dan asas CSS

HTML asas menggunakan senarai berasaskan grid:

  • : grid kontena. .grid
  • : item grid individu. .grid__child
markup adalah seperti berikut:

Salin selepas log masuk
gaya awal CSS grid dan anak -anaknya:

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, 15rem);
  grid-gap: 1rem;
}

.grid__child {
  background: rgba(0, 0, 0, .1);
  border-radius: .5rem;
  aspect-ratio: 1/1;
}
Salin selepas log masuk
Ini mewujudkan grid tiga lajur (menyesuaikan secara dinamik berdasarkan saiz skrin) dengan jurang antara item.

memanfaatkan pemilih CSS

Interaksi teras melibatkan dua langkah:

    melayang bekas mempengaruhi semua kanak -kanak.
  1. kanak -kanak yang melayang itu sendiri dikecualikan.
Pertama, kami mensasarkan semua kanak -kanak apabila bekas itu berlegar:

.grid:hover .grid__child {
  /* ... */
}
Salin selepas log masuk
Seterusnya, kami mengecualikan kanak -kanak yang sedang berlegar menggunakan

untuk mengurangkan kelegapan: :not(:hover)

.grid:hover .grid__child:not(:hover) {
  opacity: 0.3;
}
Salin selepas log masuk
Ini berfungsi dengan sempurna tanpa jurang antara unsur -unsur. Walau bagaimanapun, dengan jurang, kesannya mencetuskan walaupun kursor berada di atas jurang itu sendiri.

Menangani jurang

Penyelesaiannya terletak pada peristiwa penunjuk mengawal. Dengan menetapkan

pada bekas pointer-events: none dan .grid pada anak -anaknya, kami memastikan kesan hover hanya mencetuskan apabila secara langsung ke atas elemen kanak -kanak, dengan berkesan mengabaikan jurang. pointer-events: auto

Menambah peralihan untuk perubahan kelegapan yang lebih lancar melengkapkan kesan.
.grid {
  /* ... */
  pointer-events: none;
}

.grid__child {
  /* ... */
  pointer-events: auto;
}
Salin selepas log masuk

CSS akhir yang menggabungkan penyelesaian ini ialah:

Batasan Potensi
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, 15rem);
  grid-gap: 3rem;
  pointer-events: none;
}

.grid:hover .grid__child:not(:hover) {
  opacity: 0.3;
}

.grid__child {
  background: rgba(0, 0, 0, .1);
  border-radius: .5rem;
  aspect-ratio: 1/1;
  pointer-events: auto;
  transition: opacity 300ms;
}
Salin selepas log masuk

Walaupun berkesan, pendekatan ini mungkin memerlukan pelarasan untuk bekas scrollable (mis., Slider mendatar). Dalam kes sedemikian, membungkus

dalam bekas lain boleh menjadi penyelesaian.

.grid Kesimpulan

Ini menunjukkan penyelesaian CSS tulen yang kuat untuk cabaran interaksi yang sama. Dengan memanfaatkan pemilih CSS lanjutan dan kawalan acara penunjuk, kami mencapai kesan yang canggih tanpa menggunakan JavaScript, yang membawa kepada kod yang lebih bersih dan lebih diselenggara. Ini menonjolkan keupayaan CSS yang semakin meningkat dan menggalakkan meneroka penyelesaian asli sebelum menambah kerumitan JavaScript.

Atas ialah kandungan terperinci Kesan fokus galeri CSS tulen dengan: tidak. 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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1659
14
Tutorial PHP
1258
29
Tutorial C#
1232
24
Fon Font Google Fon Fon Font Google Fon Apr 09, 2025 am 10:42 AM

Saya melihat Font Google melancarkan reka bentuk baru (tweet). Berbanding dengan reka bentuk besar yang terakhir, ini terasa lebih berulang. Saya hampir tidak dapat memberitahu perbezaannya

Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Apr 11, 2025 am 11:29 AM

Pernahkah anda memerlukan pemasa undur dalam projek? Untuk sesuatu seperti itu, mungkin semula jadi untuk mencapai plugin, tetapi sebenarnya lebih banyak lagi

Panduan Atribut Data HTML Panduan Atribut Data HTML Apr 11, 2025 am 11:50 AM

Semua yang anda ingin tahu mengenai atribut data dalam HTML, CSS, dan JavaScript.

Bukti konsep untuk menjadikan sass lebih cepat Bukti konsep untuk menjadikan sass lebih cepat Apr 16, 2025 am 10:38 AM

Pada permulaan projek baru, kompilasi SASS berlaku dalam sekejap mata. Ini terasa hebat, terutamanya apabila ia dipasangkan dengan BrowserSync, yang dimuat semula

Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Apr 09, 2025 am 11:29 AM

Tartan adalah kain berpola yang biasanya dikaitkan dengan Scotland, terutamanya kilt bergaya mereka. Di Tartanify.com, kami mengumpulkan lebih dari 5,000 Tartan

Cara Membina Komponen Vue dalam Tema WordPress Cara Membina Komponen Vue dalam Tema WordPress Apr 11, 2025 am 11:03 AM

Arahan template inline membolehkan kita membina komponen Vue yang kaya sebagai peningkatan progresif ke atas markup WordPress yang sedia ada.

PHP adalah A-OK untuk templat PHP adalah A-OK untuk templat Apr 11, 2025 am 11:04 AM

Templat PHP sering mendapat rap buruk untuk memudahkan kod subpar - tetapi itu tidak perlu berlaku. Mari kita lihat bagaimana projek PHP dapat menguatkuasakan asas

Pengaturcaraan sass untuk mencipta kombinasi warna yang boleh diakses Pengaturcaraan sass untuk mencipta kombinasi warna yang boleh diakses Apr 09, 2025 am 11:30 AM

Kami sentiasa mencari untuk menjadikan web lebih mudah diakses. Kontras warna hanya matematik, jadi Sass dapat membantu menutup kes -kes kelebihan yang mungkin dilewatkan oleh para pereka.

See all articles