Jadual Kandungan
Apa :is() tidak (dan mengapa ia berguna)
Bagaimana :where() berbeza (dan bila menggunakannya)
Contoh praktikal dan kes penggunaan dunia nyata
1. Memudahkan keadaan hover bersarang
2. Menetapkan semula gaya tanpa memerangi kekhususan
3. Kelas utiliti responsif
Sokongan dan keserasian penyemak imbas
Rumah hujung hadapan web Tutorial H5 Meneroka CSS baru: adalah () dan: di mana () kelas pseudo

Meneroka CSS baru: adalah () dan: di mana () kelas pseudo

Jul 30, 2025 am 05:33 AM
css Kelas pseudo

: adalah () dan: di mana () adalah kelas pseudo CSS yang berkuasa dan sintaktik yang memudahkan penulisan pemilih dan menyelesaikan masalah kekhususan. 1 .: IS () boleh mengumpulkan pelbagai pemilih, mengurangkan kod pendua dan mengekalkan kekhususan asal, dan sesuai untuk senario di mana kebolehbacaan dan struktur yang jelas diperlukan; 2.: Di mana () sintaks adalah serupa dengan fungsi, tetapi kekhususannya selalu sifar, yang sangat sesuai untuk menetapkan gaya lalai yang dapat ditulis semula dengan mudah, dan sering digunakan dalam merancang sistem atau perpustakaan komponen; 3. Kedua -dua pemilih kompleks sokongan dan struktur bersarang untuk meningkatkan pemeliharaan kod; 4. Pelayar yang menyokong penyemak imbas moden dengan baik, dan persekitaran lama dapat dipertingkatkan secara beransur -ansur. Penggunaan yang betul dari kedua-dua kelas pseudo ini menjadikan CSS lebih fleksibel, teguh dan mudah untuk skala.

CSS secara senyap-senyap mendapat lebih kuat-dan sedikit lebih elegan-dengan pengenalan :is() dan :where() kelas pseudo. Ini bukan hanya gula sintaksis; Mereka menyelesaikan titik kesakitan sebenar secara bertulis dan mengekalkan pemilih CSS. Jika anda pernah mendapati diri anda mengulangi senarai pemilih yang panjang atau berjuang dengan isu-isu tertentu, kedua-dua kelas pseudo ini berada di sini untuk membantu.

Mari kita pecahkan apa yang mereka lakukan, bagaimana mereka berbeza, dan mengapa anda mahu mula menggunakannya.


Apa :is() tidak (dan mengapa ia berguna)

:is() adalah kelas pseudo CSS yang mengambil senarai pemilih dan sepadan dengan mana-mana elemen yang sesuai dengan sekurang-kurangnya satu pemilih di dalamnya. Fikirkannya sebagai cara untuk mengumpulkan pemilih tanpa mengulangi corak yang sama berulang kali.

Sebelum :is() , anda mungkin menulis sesuatu seperti ini:

 .card: hover,
.SIDEBAR: Hover,
.NAV-LINK: Hover,
.Modal-Header: Hover {
  Kelegapan: 0.8;
}

Itu berulang -ulang dan sukar untuk dikekalkan. Dengan :is() , anda boleh memudahkannya:

 : adalah (.card, .sideBar, .nav-link, .modal-header): hover {
  Kelegapan: 0.8;
}

Ini lebih bersih, lebih mudah dibaca, dan lebih mudah dikemas kini. Hanya tambahkan atau keluarkan kelas dari senarai di dalam :is() .

Ia juga berfungsi dengan pemilih yang lebih kompleks:

 : adalah (header, utama, footer) H1 {
  saiz font: 2rem;
}

Ini menggunakan gaya untuk elemen h1 di dalam header , main , atau footer .

Manfaat Utama :: :is() mengikuti peraturan khusus biasa - Spesifikasi ditentukan oleh pemilih yang paling spesifik dalam senarai. Jadi jika salah satu item dalam :is() adalah #id , pemilih keseluruhan mendapat spesifik yang tinggi.


Bagaimana :where() berbeza (dan bila menggunakannya)

:where() kelihatan dan berfungsi hampir sama seperti :is() - ia juga mengambil senarai pemilih dan sepadan dengan apa -apa yang dikenakan. Tetapi inilah perbezaan kritikal :

:where() selalu mempunyai kekhususan sifar .

Ini bermakna tidak kira apa yang anda masukkan ke dalam :where() , ia tidak akan menambah berat badan khusus kepada pemilih.

Ini sangat berguna untuk gaya lalai atau corak semula/utiliti , di mana anda ingin menentukan gaya asas yang mudah ditimpa kemudian.

Sebagai contoh, perpustakaan UI mungkin menetapkan gaya butang lalai:

 : di mana (butang, [peranan = "butang"], .btn) {
  Padding: 0.5em 1em;
  Sempadan: 1px pepejal #ccc;
  Latar Belakang: #F0F0F0;
  Radius sempadan: 4px;
}

Kerana :where() mempunyai kekhususan sifar, peraturan kelas yang mudah kemudian di CSS dengan mudah dapat mengatasinya:

 .breamary-button {
  Latar Belakang: Biru;
  Warna: Putih;
}

Tanpa :where() , anda sering perlu menggunakan !important atau sepadan dengan spesifikasi tinggi (seperti button.btn.primary ), yang menjadi kemas.

Penggunaan :where() Apabila anda mahukan gaya fleksibel, override-friendly-terutamanya dalam sistem reka bentuk atau perpustakaan komponen.


Contoh praktikal dan kes penggunaan dunia nyata

1. Memudahkan keadaan hover bersarang

Anda mahukan anak langsung dari bekas untuk bertindak balas terhadap hover:

 .container: adalah (.card, .item, .post): hover {
  Transform: Translatey (-2px);
  Box-shadow: 0 4px 8px RGBA (0,0,0,0.1);
}

Bersih dan berskala.

2. Menetapkan semula gaya tanpa memerangi kekhususan

Gunakan :where() dalam tetapan semula atau lapisan asas:

 : di mana (ul, ol) {
  Margin: 0;
  Padding: 0;
  Senarai gaya: Tiada;
}

Sekarang anda boleh gaya senarai tertentu kemudian tanpa bimbang tentang ditindih oleh peraturan semula.

3. Kelas utiliti responsif

Gabungkan dengan pendekatan utiliti-pertama:

 : di mana (.md \\: hover: hover) {
  / * Hanya memohon apabila .md: hover digunakan, tetapi tidak akan melawan gaya lain */
}

Nota: Anda perlu melarikan diri dari kolon dengan \\: dalam nama kelas.


Sokongan dan keserasian penyemak imbas

Kedua -duanya :is() dan :where() disokong secara meluas dalam pelayar moden:

  • :is() - disokong dalam Chrome 88, Firefox 78, Safari 13.4
  • :where() - Chrome 88, Firefox 78, Safari 14.1

Untuk penyemak imbas yang lebih tua, anda mungkin perlu berpegang dengan pemilih tradisional atau menggunakan alat binaan yang boleh mengembangkannya (walaupun tiada autoprefixer yang boleh dipercayai wujud untuk :is() / :where() ).

Jika anda mensasarkan persekitaran yang lebih lama, pertimbangkan untuk menggunakannya secara progresif - mereka gagal dengan senyap, jadi kejatuhan boleh disediakan.


Ringkasan :: :is() vs :where()

Ciri :is() :where()
Fungsi Kumpulan pemilih Kumpulan pemilih
Kekhususan Berdasarkan senarai dalam tertinggi Sentiasa sifar
Terbaik untuk Pemilih kering, mengurangkan pengulangan Tetapkan semula gaya, tema, utiliti
Mengatasi sukar Boleh tinggi (tanggungan pada input) Sangat mudah

Penggunaan :is() apabila anda mahu CSS yang lebih bersih, lebih banyak dikekalkan tanpa mengubah cara kerja tertentu.

Gunakan :where() Apabila anda mahu menetapkan lalai yang tidak akan mendapat jalan kemudian.

Kedua -duanya menjadikan CSS lebih ekspresif dan kurang rapuh. Dan dengan jujur, apabila anda mula menggunakannya, anda akan tertanya -tanya bagaimana anda hidup tanpa mereka.

Pada asasnya - mereka adalah ciri -ciri kecil dengan kesan yang besar.

Atas ialah kandungan terperinci Meneroka CSS baru: adalah () dan: di mana () kelas pseudo. 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

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

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!

Artikel Panas

Skop pembolehubah PHP dijelaskan
1 bulan yang lalu By 百草
Petua untuk menulis komen php
4 minggu yang lalu By 百草
Mengulas kod dalam php
4 minggu yang lalu By 百草

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 PHP
1510
276
Apakah harta nisbah aspek CSS dan bagaimana menggunakannya? Apakah harta nisbah aspek CSS dan bagaimana menggunakannya? Aug 04, 2025 pm 04:38 PM

Theaspect-ratiocsspropertydefinesthewidth-to-heightratioofanelement, memastikan konsistenproportionsinresponedesedesigns.1.InisappliedDirectyToelementsLikeImages, Video, Orcontainersusingsyxsuchaspasect-ratio: 16/9.2.

Apakah aplikasi perdagangan mata wang maya? Apakah aplikasi perdagangan mata wang maya? Aug 08, 2025 pm 06:42 PM

1. Binance terkenal dengan jumlah transaksi yang besar dan pasangan perdagangan yang kaya. Ia menyediakan model perdagangan yang pelbagai dan ekosistem yang sempurna. Ia juga memastikan keselamatan aset pengguna melalui dana SAFU dan teknologi keselamatan berganda dan sangat penting untuk operasi yang mematuhi; 2. Okx Ouyi menyediakan pelbagai perkhidmatan perdagangan aset digital dan model akaun perdagangan bersatu, secara aktif menyebarkan medan Web3, dan meningkatkan keselamatan dan pengalaman transaksi melalui kawalan risiko yang ketat dan pendidikan pengguna; 3. Gate.io Sesame membuka pintu dan mempunyai kelajuan mata wang yang baik dan mata wang yang kaya, menyediakan alat perdagangan yang pelbagai dan perkhidmatan nilai tambah, mengamalkan pelbagai mekanisme pengesahan keselamatan dan mematuhi ketelusan rizab aset untuk meningkatkan kepercayaan pengguna; 4. Huobi menyediakan perkhidmatan aset digital sehenti dengan pengumpulan industri yang mendalam, dengan kedalaman urus niaga yang kuat dan

Bagaimana cara menggunakan CSS: Kelas pseudo kosong? Bagaimana cara menggunakan CSS: Kelas pseudo kosong? Aug 05, 2025 am 09:48 AM

The: emptypseudo-classSelectSelementSwithnoChildrenorcontent, includingspacesorcomments, SoonlyTrulyEmptyElementsLikeMatchit; 1.itcanHideEptyContainersByusing: kosong {paparan: none;} TOCleanUplayouts;

Bagaimana cara menggunakan laluan klip CSS untuk bentuk kreatif? Bagaimana cara menggunakan laluan klip CSS untuk bentuk kreatif? Aug 04, 2025 pm 02:55 PM

Gunakan CSSClip-Path untuk membuat bentuk bukan kubah dalam penyemak imbas tanpa imej tambahan atau SVG kompleks; 2. Fungsi bentuk biasa termasuk inset (), bulatan (), elips () dan poligon (), di mana poligon () melaksanakan bentuk tersuai dengan menentukan titik koordinat, yang sesuai untuk membuat reka bentuk kreatif seperti gelembung dialog; 3. Laluan klip boleh mencapai kesan dinamik melalui peralihan CSS atau animasi kerangka utama, seperti pengembangan bulatan semasa melayang, tetapi hanya menyokong animasi antara bentuk yang sama dan bilangan simpang; 4. Perhatikan respons dan aksesibiliti untuk memastikan kandungan masih tersedia apabila tidak disokong, teks itu boleh dibaca, elakkan tanaman yang berlebihan, dan mengawal bilangan simpul poligon untuk mengoptimumkan prestasi. Pada masa yang sama, perlu mengetahui bahawa

Bagaimana untuk membuat menu akordion CSS sahaja? Bagaimana untuk membuat menu akordion CSS sahaja? Aug 03, 2025 pm 01:48 PM

Gunakan kotak semak tersembunyi dan CSS: Pseudo-kelas yang diperiksa digabungkan dengan pemilih saudara bersebelahan () untuk mengawal paparan kandungan; 2. Struktur HTML mengandungi input, label dan kandungan div untuk setiap item yang runtuh; 3. Ekspansi lancar/runtuh animasi dengan menetapkan peralihan ketinggian max; 4. Tambah ikon status terbuka/tutup dengan elemen pseudo; 5. Gunakan jenis radio untuk melaksanakan mod tunggal terbuka, manakala kotak semak membolehkan pelbagai bukaan. Ini adalah pelaksanaan menu dilipat interaktif yang tidak memerlukan JavaScript dan serasi dengan pelayar moden.

Cara Menggunakan Unit VW dan VH di CSS Cara Menggunakan Unit VW dan VH di CSS Aug 07, 2025 pm 11:44 PM

Unit VW dan VH mencapai reka bentuk responsif dengan mengaitkan saiz elemen dengan lebar dan ketinggian viewport; 1VW adalah sama dengan 1% lebar viewport, dan 1VH adalah sama dengan 1% ketinggian viewport; biasanya digunakan di kawasan skrin penuh, fon responsif dan jarak elastik; 1. Gunakan 100VH atau lebih baik 100DVH di kawasan skrin penuh untuk mengelakkan pengaruh bar alamat pelayar mudah alih; 2. 3. Jarak elastik seperti lebar: 80VW, margin: 5vhauto, padding: 2VH3VW, boleh membuat susun atur yang boleh disesuaikan; Perhatikan keserasian peranti mudah alih, kebolehaksesan dan konflik kandungan lebar tetap, dan disyorkan untuk memberi keutamaan untuk menggunakan DVH terlebih dahulu;

Cara menggunakan harta penapis di CSS Cara menggunakan harta penapis di CSS Aug 11, 2025 pm 05:29 PM

Thecssfilterpropertyallowsvisualeffectslebur, kecerahan, andgrayscaletobeapplieddirectlytoHtmlelements.1) usethesyntaxfilter: filter-function (nilai) toapplyeffect.2) combinemultipleFileSwithswithswith, E.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.

Cara membuat garis menegak dengan CSS Cara membuat garis menegak dengan CSS Aug 11, 2025 pm 12:49 PM

Gunakan div dengan sempadan untuk membuat garis menegak dengan cepat, dan tentukan gaya dan ketinggian dengan menetapkan sempadan dan ketinggian; 2. Penggunaan :: Sebelum atau :: Selepas elemen pseudo untuk menambah garis menegak tanpa tag HTML tambahan, sesuai untuk pemisahan hiasan; 3. Dalam susun atur Flexbox, dengan menetapkan warna lebar dan latar belakang kelas pembahagi, pembahagi menegak adaptif antara bekas elastik dapat dicapai; 4. Dalam cssgrid, masukkan garis menegak sebagai lajur bebas (seperti lajur autowidth) ke dalam susun atur grid, yang sesuai untuk reka bentuk responsif; Kaedah yang paling sesuai harus dipilih mengikut susun atur khusus untuk memastikan strukturnya mudah dan mudah dijaga.

See all articles