cari
Rumahhujung hadapan webtutorial cssKesan fokus galeri CSS tulen dengan: tidak

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:


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;
}
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 {
  /* ... */
}
Seterusnya, kami mengecualikan kanak -kanak yang sedang berlegar menggunakan

untuk mengurangkan kelegapan: :not(:hover)

.grid:hover .grid__child:not(:hover) {
  opacity: 0.3;
}
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;
}

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;
}

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
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
Apakah grid CSS?Apakah grid CSS?Apr 30, 2025 pm 03:21 PM

CSS Grid adalah alat yang berkuasa untuk mewujudkan susun atur web yang rumit dan responsif. Ia memudahkan reka bentuk, meningkatkan kebolehcapaian, dan menawarkan lebih banyak kawalan daripada kaedah yang lebih lama.

Apakah CSS Flexbox?Apakah CSS Flexbox?Apr 30, 2025 pm 03:20 PM

Artikel membincangkan CSS Flexbox, kaedah susun atur untuk penjajaran yang cekap dan pengedaran ruang dalam reka bentuk responsif. Ia menerangkan penggunaan Flexbox, membandingkannya dengan grid CSS, dan butiran sokongan penyemak imbas.

Bagaimanakah kita boleh membuat laman web kami responsif menggunakan CSS?Bagaimanakah kita boleh membuat laman web kami responsif menggunakan CSS?Apr 30, 2025 pm 03:19 PM

Artikel ini membincangkan teknik untuk membuat laman web responsif menggunakan CSS, termasuk tag Meta Viewport, grid fleksibel, media cecair, pertanyaan media, dan unit relatif. Ia juga meliputi menggunakan grid CSS dan Flexbox bersama -sama dan mengesyorkan rangka kerja CSS

Apakah harta saiz kotak CSS?Apakah harta saiz kotak CSS?Apr 30, 2025 pm 03:18 PM

Artikel ini membincangkan harta saiz kotak CSS, yang mengawal bagaimana dimensi elemen dikira. Ia menerangkan nilai seperti kotak kandungan, kotak sempadan, dan kotak padding, dan kesannya terhadap reka bentuk susun atur dan penjajaran bentuk.

Bagaimanakah kita boleh menghidupkan CSS?Bagaimanakah kita boleh menghidupkan CSS?Apr 30, 2025 pm 03:17 PM

Artikel membincangkan membuat animasi menggunakan CSS, sifat utama, dan menggabungkan dengan JavaScript. Isu utama adalah keserasian penyemak imbas.

Bolehkah kita menambah transformasi 3D ke projek kami menggunakan CSS?Bolehkah kita menambah transformasi 3D ke projek kami menggunakan CSS?Apr 30, 2025 pm 03:16 PM

Artikel membincangkan menggunakan CSS untuk transformasi 3D, sifat utama, keserasian penyemak imbas, dan pertimbangan prestasi untuk projek web. (Kira -kira aksara: 159)

Bagaimana kita boleh menambah kecerunan dalam CSS?Bagaimana kita boleh menambah kecerunan dalam CSS?Apr 30, 2025 pm 03:15 PM

Artikel ini membincangkan menggunakan kecerunan CSS (linear, radial, mengulangi) untuk meningkatkan visual laman web, menambah kedalaman, fokus, dan estetika moden.

Apakah unsur-unsur pseudo dalam CSS?Apakah unsur-unsur pseudo dalam CSS?Apr 30, 2025 pm 03:14 PM

Artikel membincangkan unsur-unsur pseudo dalam CSS, penggunaannya dalam meningkatkan gaya HTML, dan perbezaan dari kelas pseudo. Menyediakan contoh praktikal.

See all articles

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

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa