Rumah hujung hadapan web tutorial css 5分钟读懂css伪类选择器:is :not

5分钟读懂css伪类选择器:is :not

Nov 29, 2019 pm 01:30 PM
Pemilih kelas pseudo

本文介绍一下Css伪类:is和:not,并解释一下is、not、matches、any之间的关系

5分钟读懂css伪类选择器:is :not

:not

The :not() CSS pseudo-class represents elements that do not match a list of selectors. Since it prevents specific items from being selected, it is known as the negation pseudo-class.

以上是MDN对not的解释

推荐学习:CSS视频教程  

单从名字上我们应该能对它有大概的认知,非选择,排除括号内的其它元素

最简单的例子,用CSS将div内,在不改变html的前提下,除了P标签,其它的字体颜色变成蓝色,

<div>
    <span>我是蓝色</span>
    <p>我是黑色</p>
    <h1>我是蓝色</h2>
    <h2>我是蓝色</h2>
    <h3>我是蓝色</h3>
    <h4>我是蓝色</h4>
    <h5>我是蓝色</h5>
</div>
Salin selepas log masuk

之前的做法

div span,div h2,div h3, div h4,{
  color: blue;
}
Salin selepas log masuk

not写法

div:not(p){
  color: blue;
}
Salin selepas log masuk

从上面的例子可以明显体会到not伪类选择器的作用

下面升级一下,问:将div内除了span和p,其它字体颜色变蓝色

div:not(p):not(span){
  color: blue;
}
Salin selepas log masuk

还有更为简洁的方法,如下,但是目前兼容不太好,不建议使用

div:not(p,span){
  color: blue;
}
Salin selepas log masuk

兼容

除IE8,目前所有主流浏览器都支持,可以放心使用

:is

The :is() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list. This is useful for writing large selectors in a more compact form.

以上是MDN的解释

在说is前,需要先了解一下matches

matches跟is是什么关系?

matches是is的前世,但是本质上确实一个东西,用法完全一样

matches这个单词意思跟它的作用非常匹配,但是它跟not作用恰好相反,作为not的对立面,matches这个次看起来确实格格不入,而且单词不够简洁,所以它被改名了,这里还有一个issue https://github.com/w3c/csswg-drafts/issues/3258,也就是它改名的源头

好了,现在知道matches和is其实是一个东西,那么is的用法是怎样的呢?

举例:将header和main下的p标签,在鼠标hover时文字变蓝色

<header>
  <ul>
    <li><p>鼠标放上去变蓝色</p></li>
    <li><p>鼠标放上去变蓝色</p></li>
  </ul>
  <p>正常字体</p>
</header>
<main>
  <ul>
    <li><p>鼠标放上去变蓝色</p></li>
    <li><p>鼠标放上去变蓝色</p></li>
    <p>正常字体</p>
  </ul>
</main>
<footer>
  <ul>
    <li><p>正常字体</p></li>
    <li><p>正常字体</p></li>
  </ul>
</footer>
Salin selepas log masuk

之前的做法

header ul p:hover,main ul p:hover{
  color: blue;
}
Salin selepas log masuk

is写法

:is(header, main) ul p:hover{
  color: blue;
}
Salin selepas log masuk

从上面的例子大概能看出is的左右,但是并没有完全体现出is的强大之处,但是当选择的内容变多之后,特别是那种层级较多的,会发现is的写法有多简洁,拿MDN的一个例子看下

之前的写法

/* Level 0 */
h1 {
  font-size: 30px;
}
/* Level 1 */
section h1, article h1, aside h1, nav h1 {
  font-size: 25px;
}
/* Level 2 */
section section h1, section article h1, section aside h1, section nav h1,
article section h1, article article h1, article aside h1, article nav h1,
aside section h1, aside article h1, aside aside h1, aside nav h1,
nav section h1, nav article h1, nav aside h1, nav nav h1 {
  font-size: 20px;
}
Salin selepas log masuk

is写法

/* Level 0 */
h1 {
  font-size: 30px;
}
/* Level 1 */
:is(section, article, aside, nav) h1 {
  font-size: 25px;
}
/* Level 2 */
:is(section, article, aside, nav)
:is(section, article, aside, nav) h1 {
  font-size: 20px;
}
Salin selepas log masuk

可以看出,随着嵌套层级的增加,is的优势越来越明显

说完了is,那就必须认识一下any,前面说到is是matches的替代者,

any跟is又是什么关系呢?

是的,is也是any的替代品,它解决了any的一些弊端,比如浏览器前缀、选择性能等

any作用跟is完全一样,唯一不同的是它需要加浏览器前缀,用法如下

:-moz-any(.b, .c) {
}
:-webkit-any(.b, .c) { 
}
Salin selepas log masuk

结论

通过上面的介绍大概讲述了css伪类is,not,matches,any它们三者的关系

is+not组合是大势所趋

本文来自PHP中文网,CSS教程栏目,欢迎学习  

Atas ialah kandungan terperinci 5分钟读懂css伪类选择器:is :not. 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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan 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)

Apakah maksud hover dalam css Apakah maksud hover dalam css Feb 22, 2024 pm 01:24 PM

:hover dalam CSS ialah pemilih kelas pseudo yang digunakan untuk menggunakan gaya tertentu apabila pengguna menuding pada elemen tertentu. Apabila tetikus melayang di atas elemen, anda boleh menambah gaya yang berbeza padanya melalui :hover untuk meningkatkan pengalaman dan interaksi pengguna. Artikel ini akan membincangkan secara terperinci: maksud hover dan memberikan contoh kod tertentu. Mula-mula, mari kita fahami penggunaan asas :hover dalam CSS. Dalam CSS, anda boleh menggunakan pemilih untuk memilih elemen yang anda mahu gunakan kesan :hover dan tambah selepasnya

Bagaimana untuk membuang titik di hadapan tag li dalam css Bagaimana untuk membuang titik di hadapan tag li dalam css Apr 28, 2024 pm 12:36 PM

Terdapat dua cara untuk mengalih keluar titik daripada teg li dalam CSS: 1. Gunakan "jenis gaya senarai: tiada;" Gunakan imej telus dan "imej gaya senarai: url("transparent.png"); ; "gaya. Kedua-dua kaedah boleh mengalih keluar titik semua tag li Jika anda hanya mahu mengalih keluar titik tag li tertentu, anda boleh menggunakan pemilih kelas pseudo.

Cara menggunakan:nth-child(-n+5) pseudo-class pemilih untuk memilih gaya CSS elemen anak yang kedudukannya kurang daripada atau sama dengan 5 Cara menggunakan:nth-child(-n+5) pseudo-class pemilih untuk memilih gaya CSS elemen anak yang kedudukannya kurang daripada atau sama dengan 5 Nov 20, 2023 am 11:52 AM

Cara menggunakan:nth-child(-n+5) pemilih kelas pseudo untuk memilih gaya CSS elemen anak yang kedudukannya kurang daripada atau sama dengan 5. Dalam CSS, pemilih kelas pseudo ialah alat berkuasa yang boleh dipilih melalui kaedah pemilihan tertentu Elemen tertentu dalam dokumen HTML. Antaranya, :nth-child() ialah pemilih kelas pseudo yang biasa digunakan yang boleh memilih elemen anak pada kedudukan tertentu. :nth-child(n) boleh memadankan elemen anak ke-nth dalam HTML dan :nth-child(-n) boleh memadankan

Peranan hover dalam html Peranan hover dalam html Feb 20, 2024 am 08:58 AM

Peranan hover dalam HTML dan contoh kod khusus Dalam pembangunan web, hover merujuk kepada mencetuskan beberapa tindakan atau kesan apabila pengguna menuding kursor pada elemen. Ia dilaksanakan melalui CSS :hover pseudo-class. Dalam artikel ini, kami akan memperkenalkan peranan hover dan contoh kod khusus. Pertama, tuding membolehkan elemen menukar gayanya apabila pengguna menuding di atasnya. Contohnya, apabila menuding tetikus pada butang, anda boleh menukar warna latar belakang butang atau warna teks untuk mengingatkan pengguna perkara yang perlu dilakukan seterusnya.

Apakah maksud :: dalam css Apakah maksud :: dalam css Apr 28, 2024 pm 03:45 PM

Pemilih kelas pseudo :: dalam CSS digunakan untuk menentukan keadaan atau gelagat istimewa elemen, dan lebih khusus daripada pemilih kelas pseudo : dan boleh memilih sifat atau keadaan tertentu bagi elemen.

Menggunakan sifat kandungan dalam CSS Menggunakan sifat kandungan dalam CSS Feb 19, 2024 am 10:56 AM

Penggunaan atribut kandungan dalam CSS Atribut kandungan dalam CSS ialah atribut yang sangat berguna, yang digunakan untuk memasukkan kandungan tambahan dalam kelas pseudo. Atribut kandungan secara amnya hanya boleh digunakan dalam pemilih kelas pseudo (seperti ::before dan ::after) Ia boleh digunakan untuk memasukkan kandungan seperti teks atau imej. Kita boleh mencapai beberapa kesan yang sangat hebat melalui atribut kandungan. Berikut ialah beberapa kegunaan atribut kandungan dan contoh kod khusus: Sisipkan kandungan teks melalui

Cara menggunakan hover dalam css Cara menggunakan hover dalam css Feb 23, 2024 pm 12:06 PM

Kelas pseudo hover dalam CSS ialah pemilih yang sangat biasa digunakan yang membolehkan kita menukar gaya elemen apabila tetikus melayang di atasnya. Artikel ini akan memperkenalkan penggunaan hover dan memberikan contoh kod khusus. 1. Penggunaan Asas Untuk menggunakan hover, kita perlu terlebih dahulu mentakrifkan gaya untuk elemen, dan kemudian menggunakan :hover pseudo-class untuk menentukan gaya yang sepadan apabila tetikus melayang. Sebagai contoh, kami mempunyai elemen butang Apabila tetikus melayang di atas butang, kami mahu warna latar belakang butang bertukar kepada merah dan warna teks kepada putih.

Gunakan pemilih kelas pseudo :nth-last-child(2) untuk memilih gaya elemen anak kedua hingga terakhir Gunakan pemilih kelas pseudo :nth-last-child(2) untuk memilih gaya elemen anak kedua hingga terakhir Nov 20, 2023 am 11:22 AM

Gunakan pemilih kelas pseudo :nth-last-child(2) untuk memilih gaya elemen anak kedua. Contoh kod khusus diperlukan Dalam CSS, pemilih kelas pseudo ialah alat yang sangat berkuasa yang boleh digunakan untuk memilih pokok dokumen. Salah satunya ialah pemilih kelas pseudo :nth-last-child(2), yang memilih elemen anak kedua hingga terakhir dan menggunakan gaya padanya. Mula-mula, mari kita buat contoh dokumen HTML supaya kita boleh menggunakan pemilih kelas pseudo ini di dalamnya. oleh

See all articles