


Mewujudkan Kad Animasi, Diklik dengan: Mempunyai () Kelas Pseudo Relasi
digunakan jauh lebih daripada itu. Salah satu kegunaannya adalah untuk mengubah reka bentuk mod kad yang boleh diklik yang sering digunakan oleh ramai orang. :has()
:has()
kami akan meneroka
:has()
:has()
Terdapat banyak artikel yang sangat baik yang menjelaskan tujuan
dengan baik, tetapi ia masih agak baru, jadi kita juga harus memperkenalkannya secara ringkas di sini.
:has()
:has()
<code>/* 匹配包含图像元素的article元素 */ article:has(img) { } /* 匹配article元素,其内部直接包含图像 */ article:has(> img) { }</code>
dengan keupayaan negatif untuk mencapai ini:
:has()
:not()
tetapi ini hanya permulaan bagaimana kita dapat menggabungkan pelbagai keupayaan untuk mencapai lebih banyak fungsi menggunakan
<code>/* 匹配不包含图像的article元素 */ article:not(:has(img)) { }</code>
:has()
bagaimana kita sekarang berurusan dengan kad yang boleh diklik :has()
"pautan sebagai pembungkus" kaedah
Kaedah ini sering digunakan. Saya tidak pernah menggunakan kaedah ini, tetapi saya mencipta demo cepat untuk menunjukkannya:
Terdapat banyak isu di sini, terutamanya ketika datang ke aksesibilitas. Apabila pengguna melayari laman web anda menggunakan ciri pemutar, mereka mendengar teks penuh di dalam elemen
tajuk, teks, dan pautan. Sesetengah orang mungkin tidak mahu mendengar semua ini. Kita boleh melakukan yang lebih baik. Bermula dengan HTML5, kita boleh bersarang unsur -unsur blok dalam
elemen. Tetapi ini selalu terasa salah kepada saya, terutamanya atas sebab ini.
<a></a>
<a></a>
Pro:
cepat melaksanakan
- semantik betul
- Kekurangan:
Isu Kebolehcapaian
- teks tidak boleh dipilih
- sangat menyusahkan untuk mengatasi gaya yang digunakan dalam pautan lalai
- kaedah javascript
Kaedah ini mempunyai banyak faedah. Pautan kami boleh diakses apabila difokuskan dan kami juga boleh memilih teks. Tetapi terdapat beberapa kelemahan dari segi gaya. Sebagai contoh, jika kita mahu menghidupkan kad ini, kita perlu menambah gaya .card
dalam pembungkus utama :hover
dan bukannya pautan itu sendiri. Kami juga tidak mendapat manfaat daripada animasi apabila pautan difokuskan melalui kekunci tab papan kekunci.
Pro:
- kebolehcapaian penuh dapat dicapai
- teks yang boleh dipilih
Kekurangan:
- JavaScript diperlukan
- tidak boleh klik kanan (walaupun ia boleh diperbaiki dengan beberapa skrip tambahan)
- Banyak gaya yang diperlukan untuk dilakukan pada kad itu sendiri, yang tidak berfungsi apabila memberi tumpuan kepada pautan
::after
kaedah pemilih
Kaedah ini menghendaki kami menetapkan kad ke kedudukan relatif dan kemudian tetapkan kedudukan mutlak pada pemilih pseudo yang dipautkan. Ini tidak memerlukan mana -mana JavaScript dan mudah dilaksanakan: ::after
Pro:
- mudah dilaksanakan
- pautan yang boleh diakses, tiada teks berlebihan
- dilaksanakan ketika melayang dan fokus
Kekurangan:
- teks tidak boleh dipilih
- Anda hanya boleh menghidupkan pautan kerana ini adalah elemen yang anda hover.
gabungan dengan ::after
:has()
Sekarang kami telah mengenal pasti kaedah sedia ada untuk kad yang boleh diklik, saya ingin menunjukkan cara menambah campuran untuk menyelesaikan kebanyakan kekurangan ini. :has()
pada elemen pautan. Kita sebenarnya boleh menggunakan ::after
di sana untuk mengatasi batasan animasi kaedah. :has()
<code>/* 匹配包含图像元素的article元素 */ article:has(img) { } /* 匹配article元素,其内部直接包含图像 */ article:has(> img) { }</code>
Untuk demo ini, kami akan menambah skala imej dan bayang -bayang ke kad untuk melayang dan menghidupkan pautan supaya anak panah muncul dan mengubah warna teks pautan. Untuk memudahkan operasi, kami akan menambah beberapa sifat tersuai scoped ke kad. Ini adalah gaya asas:
<code>/* 匹配包含图像元素的article元素 */ article:has(img) { } /* 匹配article元素,其内部直接包含图像 */ article:has(> img) { }</code>
sangat bagus! Kami telah menambah penskalaan awal (--img-scale: 1.001
), warna awal tajuk kad (--title-color: black
) dan beberapa sifat tambahan yang akan kami gunakan untuk membuat anak panah muncul dari pautan. Kami juga menetapkan keadaan kosong pengisytiharan box-shadow
untuk menghidupkannya kemudian. Ini menetapkan asas untuk kad yang boleh diklik yang perlu kita buat sekarang, jadi mari tambahkan beberapa reset dan gaya dengan menambahkan sifat -sifat tersuai ini kepada unsur -unsur yang kita ingin menghidupkan:
<code>/* 匹配不包含图像的article元素 */ article:not(:has(img)) { }</code>
mari kita mesra pengguna dan tambahkan kelas yang tersembunyi di pembaca skrin di belakang pautan:
<img src="/static/imghw/default1.png" data-src="https://img.php.cn/" class="lazy" alt="Creating Animated, Clickable Cards With the :has() Relational Pseudo Class "><div clas="article-body"> <h2 id="Some-Heading">Some Heading</h2> <p>Curabitur convallis ac quam vitae laoreet. Nulla mauris ante, euismod sed lacus sit amet, congue bibendum eros. Etiam mattis lobortis porta. Vestibulum ultrices iaculis enim imperdiet egestas.</p> <a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b"> Read more <svg fill="currentColor" viewbox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z" fill-rule="evenodd"></path></svg></a> </div>
kad kami mula kelihatan cantik. Sudah tiba masanya untuk menambah sihir kepadanya. Menggunakan kelas pseudo :has()
, kini kami boleh menyemak sama ada pautan kami dilegakan atau difokuskan, kemudian kemas kini sifat tersuai kami dan tambah box-shadow
. Dengan kod CSS yang kecil ini, kad kami benar -benar hidup:
/* 卡片元素 */ article { --img-scale: 1.001; --title-color: black; --link-icon-translate: -20px; --link-icon-opacity: 0; position: relative; border-radius: 16px; box-shadow: none; background: https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bfff; transform-origin: center; transition: all 0.4s ease-in-out; overflow: hidden; } /* 链接的::after伪元素 */ article a::after { content: ""; position: absolute; inset-block: 0; inset-inline: 0; cursor: pointer; }
adakah anda melihat kandungan di atas? Sekarang, jika ada unsur -unsur kanak -kanak di dalam kad yang dilegakan atau difokuskan, kami akan mendapat gaya terkini. Walaupun elemen pautan adalah satu -satunya elemen yang boleh mengandungi keadaan hover atau fokus dalam kaedah kad yang boleh diklik, kita boleh menggunakannya untuk memadankan elemen induk dan menggunakan transformasi.
itu sahaja. Satu lagi kes penggunaan yang kuat untuk pemilih. Kita bukan sahaja boleh memadankan elemen induk dengan mengisytiharkan elemen lain sebagai parameter, tetapi juga menggunakan kelas pseudo untuk dipadankan dan menetapkan gaya elemen induk. ::after
Pro: :has()
boleh diakses
anime boleh ditetapkan- Tiada JavaScript diperlukan
- Gunakan pada elemen yang betul
-
:hover
Kekurangan:
teks tidak mudah dipilih.
Sokongan penyemak imbas terhad kepada Chrome dan Safari (di Firefox, ia disokong di belakang logo).- Ini adalah demonstrasi menggunakan teknik ini. Anda mungkin melihat pembungkus tambahan di sekitar kad, tetapi ini hanya beberapa percubaan yang saya buat semasa menggunakan pertanyaan kontena, yang merupakan salah satu daripada beberapa ciri hebat lain yang dilancarkan di semua pelayar utama.
- Adakah anda mempunyai beberapa contoh lain yang ingin anda kongsi? Bahagian komen sangat dialu -alukan untuk penyelesaian atau idea lain.
Atas ialah kandungan terperinci Mewujudkan Kad Animasi, Diklik dengan: Mempunyai () Kelas Pseudo Relasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ia ' s! Tahniah kepada pasukan Vue untuk menyelesaikannya, saya tahu ia adalah usaha besar dan lama datang. Semua dokumen baru juga.

Saya mempunyai seseorang yang menulis dengan soalan yang sangat legit ini. Lea hanya blog tentang bagaimana anda boleh mendapatkan sifat CSS yang sah dari penyemak imbas. That ' s seperti ini.

Pada hari yang lain, saya melihat sedikit ini sangat indah dari laman web Corey Ginnivan di mana koleksi kad timbunan di atas satu sama lain semasa anda menatal.

Jika kita perlu menunjukkan dokumentasi kepada pengguna secara langsung dalam editor WordPress, apakah cara terbaik untuk melakukannya?

Terdapat beberapa aplikasi desktop ini di mana matlamat menunjukkan laman web anda pada dimensi yang berbeza pada masa yang sama. Oleh itu, anda boleh menulis

CSS Grid adalah koleksi sifat yang direka untuk menjadikan susun atur lebih mudah daripada yang pernah berlaku. Seperti apa -apa, ada sedikit keluk pembelajaran, tetapi grid adalah

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
