Heim > Web-Frontend > CSS-Tutorial > CSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse

CSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse

青灯夜游
Freigeben: 2022-08-03 11:27:03
Original
2573 Leute haben es durchsucht

Im vorherigen Artikel „CSS-Pseudo-Selektor-Lernen: Pseudo-Element-Selektor-Analyse“ haben wir etwas über Pseudo-Element-Selektoren gelernt, und heute werfen wir einen genaueren Blick auf Pseudo-Klassen-Selektoren. Ich hoffe, dass es für alle hilfreich ist !

CSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse

Pseudoklassenselektor

Pseudoklassenselektor ist eine Verwendung, die es ermöglicht, HTML-Elemente anhand von Statusinformationen zu finden, die nicht im HTML-Element enthalten sind. Die spezifische Verwendung des „Pseudoklassenselektors“ besteht darin, Schlüsselwörter zum vorhandenen Selektor hinzuzufügen, um die Statusinformationen des positionierten HTML-Elements darzustellen. [Empfohlenes Lernen: CSS-Video-Tutorial]Durch Pseudoklassen können Entwickler den dynamischen Status von Elementen festlegen, z. B. Schweben (Hover), Klicken (aktiv) und Elemente im Dokument, die von anderen Selektoren nicht ausgewählt werden können (Diese Elemente haben keine ID oder Klassenattribute), z. B. erstes Kind oder letztes Kind.

Zum Beispiel kann der Pseudoklassenselektor :hover verwendet werden, um die Farbe einer Schaltfläche zu ändern, wenn der Benutzer mit der Maus darüber fährt. Wie im folgenden Beispielcode gezeigt:

/* 所有用户指针悬停的按钮 */  
 button:hover {  
  color: blue;  
 }
Nach dem Login kopieren
Der Name der Pseudoklasse unterscheidet nicht zwischen Groß- und Kleinschreibung, sondern muss mit einem Doppelpunkt : beginnen. Darüber hinaus müssen Pseudoklassen in Verbindung mit Selektoren in CSS verwendet werden. Das Syntaxformat lautet wie folgt:

选择器:伪类 {  
  属性 : 属性值;  
 }
Nach dem Login kopieren
:hover伪类选择器可以用来在用户将鼠标悬停在按钮上时改变按钮的颜色。如下示例代码所示:
Nach dem Login kopieren
Nach dem Login kopieren
        <li>涂山红红     <li>涂山苏苏     <li>涂山蓉蓉     <li>涂山雅雅

伪类的名称不区分大小写,但需要以冒号:开头。另外,伪类需要与 CSS 中的选择器结合使用,语法格式如下:

li:first-child {
    color: red;
}
li:last-child {
    color: blue;
}
Nach dem Login kopieren
Nach dem Login kopieren

伪类选择器 的具体语法格式为 :伪类,这里一定不要忘记 :

Das spezifische Syntaxformat des Pseudoklassenselektors

ist :pseudo-class . hier nicht vergessen:.

🎜 In CSS werden verschiedene Pseudoklassen bereitgestellt, wie in der folgenden Tabelle dargestellt: 🎜:focus:hover:in-range:invalidtrifft jedes

-Element zu, dessen lang-Attributwert mit „it“ beginnt.

entspricht dem letzten untergeordneten Element im übergeordneten Element,

muss das letzte untergeordnete Element im übergeordneten Element sein im übergeordneten Element

passt zu allen nicht besuchten Linkspasst zu jedem Element, das kein

ist element

entspricht dem zweiten untergeordneten Element im übergeordneten Elemententspricht dem vorletzten untergeordneten Element des übergeordneten Elements

entspricht dem vorletzten untergeordneten Element des übergeordneten Elements

entspricht dem zweiten untergeordneten Element von Das übergeordnete Element

-child

Selektor Beispiel Beispielbeschreibung
:aktiv a:aktiv passender angeklickter Link
:geprüft Eingabe:geprüft match < in selected state ;input>
:disabled input:disabled entspricht jedem deaktivierten <input>-Element
:empty p:empty entspricht jedem

:enabled input:enabled entspricht jedem aktivierten <input>-Element
:first-child p:first-child entspricht dem ersten Element im übergeordneten Child-Element

, muss das erste untergeordnete Element im übergeordneten Element sein

:first-of-type p:first-of-type entspricht dem ersten untergeordneten Element im übergeordneten Element A

input:focus entspricht dem fokussierten <input>-Element
a:hover entspricht dem Element, über dem sich die Maus befindet
input:in-range trifft auf <input>-Elemente mit dem angegebenen Wertebereich zu
input:invalid trifft auf alle zu p:lang(it)
:last-child p :last-child
:link a:link
:not(selector) :not (p)
:nth-child(n) p:nth-child(2)
:nth-last-child(n) p:nth-last-child(2)
:nth-last -of-type(n) p:nth-last-of-type (2)
:nth-of-type(n) p:nth-of-type(2)
stimmt mit dem einzigen untergeordneten Element im übergeordneten Element überein. Bereich Eingabe:out-of-range trifft auf -Elemente mit Werten außerhalb des angegebenen Bereichs zu Das angegebene „readonly“-Attribut
:read-write input:read-write stimmt mit keinem „readonly“-Attribut überein <input> element
:root root passend zum Root-Element des Elements, in dem das „required“-Attribut angegeben ist. In HTML ist das Root-Element immer HTML
:target #news:target entspricht dem aktuell aktiven #news-Element (klicken Sie auf die URL, die diesen Ankernamen enthält)
:valid input:valid entspricht allen <input>-Elementen mit einem gültigen Wert
:visited a:visited stimmt mit allen Links überein, die besucht wurden

Klassifizierung von Pseudoklassenselektoren

Die CSS-Version hat sich von der ersten zur dritten Version weiterentwickelt, und die Anzahl der bereitgestellten Pseudoklassenselektoren ist bereits riesig. Insbesondere die CSS3-Version hat eine große Anzahl von „Pseudoklassenselektoren“ hinzugefügt. Es gibt so viele „Pseudo-Klassen-Selektoren“: bezieht sich auf Benutzer Einige verhaltensbezogene Pseudoklassen, wie z. B. Schweben mit :hover, Drücken von :active und Erhalten des Fokus :focus usw.

URL-Positionierungs-Pseudoklasse: Wird zum Auffinden von Elementen in HTML-Seiten verwendet

Eingabe-Pseudoklasse: Pseudoklasse im Zusammenhang mit Formularsteuerelementen

Struktur-Pseudoklasse : main Wird zum Auffinden des Zielelements verwendet
    <li>

    Pseudoklasse der logischen Kombination: Wird für logische Operationen wie :not() verwendet, was bedeutet, dass es sich nicht um ein bestimmtes Element handelt. :hover、按下:active以及获取焦点:focus等。

    <li>

    URL定位伪类:用于定位HTML页面中的元素

    <li>

    输入伪类:与表单控件相关的伪类

    <li>

    结构伪类:主要用于定位目标元素

    <li>

    逻辑组合伪类:用于逻辑操作的,例如:not(),就表示不是某元素。

1、用户行为伪类--动态伪类选择器

之所以称为动态伪类选择器,是因为它们根据条件的改变匹配元素,是相对于文档的固定状态来说的。随着JavaScript广泛用于修改文档内容和元素状态,动态选择器和静态选择器之间的界限越来越模糊,不过,动态伪类选择器仍然是一类比较特别的选择器。

:link选择器匹配超链接,:visited选择器匹配用户已经访问过得超链接。

使用:visited选择器可以应用到链接元素的属性不多。你可以改变颜色和字体,不过仅此而已。

提示::visited选择器匹配用户在所有页面访问过的href属性为URL的任意链接,而不只是你的页面。:visited最常见的用法就是针对已访问的链接应用某种样式,从而让它们跟未访问的链接有所区别。比如我们看新闻,看过的新闻和没有看过的新闻在首页列表呈现的状态是不一样的,便于我们区分。

:hover 选择器

:hover选择器匹配用户鼠标悬停在其上的任意元素。

:active 选择器

:active选择器匹配当前被用户激活的元素(一般情况下为鼠标点击该元素)。

:focus 选择器

:focus选择器匹配获得焦点的元素,常用于 input 元素。

2、结构性伪类选择器

使用结构性伪类选择器能够根据元素在文档中的位置选择元素。这类选择器都有一个冒号字符前缀(:),例如:empty。他们可以单独使用,也可以跟其他选择器组合使用,如p:empty。

结构伪类选择器类选择器包含的内容如下表所示:

1. Benutzerverhaltens-Pseudoklasse – dynamischer Pseudoklassenselektor
伪类选择器 作用
selector:first-child 用来定位一组兄弟元素中的第一个元素
selector:last-child 用来定位一组兄弟元素中的最后一个元素
selector:nth-child(n) 用来定位一组兄弟元素中的第n个元素
selector:nth-last-child(n) 用来定位一组兄弟元素中倒序方式的第n个元素
selector:first-of-type 用来定位一组同类型的兄弟元素中的第一个元素
selector:last-of-type 用来定位一组同类型的兄弟元素中的最后一个元素
selector:nth-of-type(n) 用来定位一组同类型的兄弟元素中的第n个元素
selector:nth-last-of-type(n) 用来定位一组同类型的兄弟元素中倒序方式的第n个元素
selector:only-child 用来定位一个没有任何兄弟元素的元素
selector:only-of-type 用来定位一个没有任何同类型兄弟元素的元素
selector:empty 用来定位一个没有子级元素的元素,并且该元素也没有任何文本内容
selector:root 用来定位 HTML 页面中的根元素(
🎜🎜🎜Der Grund, warum sie dynamische Pseudoklassenselektoren genannt werden, liegt darin, dass sie Elemente entsprechend geänderten Bedingungen abgleichen . Relativ zum festen Zustand des Dokuments. Da JavaScript häufig zum Ändern von Dokumentinhalten und Elementzuständen verwendet wird, verschwimmen die Grenzen zwischen dynamischen Selektoren und statischen Selektoren zunehmend. Dynamische Pseudoklassenselektoren sind jedoch immer noch eine besondere Art von Selektoren. 🎜🎜: Der Link-Selektor stimmt mit Hyperlinks überein, und der :visited-Selektor stimmt mit Hyperlinks überein, die der Benutzer besucht hat. 🎜🎜Verwendung des besuchten Selektors: Es gibt nicht viele Attribute, die auf Linkelemente angewendet werden können. Sie können die Farben und Schriftarten ändern, aber das ist auch schon alles. 🎜
🎜Tipps: Der besuchte Selektor stimmt mit jedem Link in der URL überein, dessen href-Attribut die URL ist, die der Benutzer auf allen Seiten besucht hat, nicht nur auf Ihrer Seite. Die häufigste Verwendung von :visited besteht darin, besuchten Links einen bestimmten Stil zuzuweisen, um sie von nicht besuchten Links zu unterscheiden. Wenn wir beispielsweise Nachrichten ansehen, wird der Status der Nachrichten, die wir gelesen haben, und der Nachrichten, die wir nicht gesehen haben, in unterschiedlichen Zuständen auf der Startseitenliste angezeigt, sodass wir sie leichter unterscheiden können. 🎜

🎜: Hover-Selektor 🎜

🎜: Der Hover-Selektor stimmt mit jedem Element überein, über das sich der Benutzer mit der Maus bewegt. 🎜

🎜: aktiver Selektor 🎜

🎜: aktiver Selektor entspricht dem Element, das aktuell vom Benutzer aktiviert ist (normalerweise wird das Element mit der Maus angeklickt). 🎜

🎜: Fokusauswahl 🎜

🎜: Der Fokusauswahl entspricht dem fokussierten Element und wird häufig für Eingabeelemente verwendet. 🎜🎜🎜🎜2. Struktureller Pseudoklassenselektor🎜🎜🎜🎜Verwenden Sie den strukturellen Pseudoklassenselektor, um Elemente basierend auf ihrer Position im Dokument auszuwählen. Dieser Art von Selektor wird ein Doppelpunkt vorangestellt (:), zum Beispiel: leer. Sie können einzeln oder in Kombination mit anderen Selektoren wie p:empty verwendet werden. 🎜🎜Der Inhalt des Struktur-Pseudoklassenselektors wird in der folgenden Tabelle angezeigt: 🎜
🎜🎜selector:nth-last-child(n)🎜

Pseudoklassenselektor Funktion
selector:first-child🎜<td>Wird verwendet, um das erste Element in einer Gruppe von Geschwisterelementen zu lokalisieren🎜🎜</td> <tr> <td> <code>selector:last-child🎜 Wird verwendet, um das erste Element in zu lokalisieren eine Gruppe von Geschwisterelementen Das letzte Element von 🎜🎜
selector:nth-child(n)🎜 wird verwendet, um das n-te Element in einer Gruppe von Geschwisterelementen zu lokalisieren🎜 🎜
Wird verwendet, um das n-te Element in einer Gruppe von Geschwisterelementen in umgekehrter Reihenfolge zu lokalisieren🎜🎜
selector :first-of-type🎜 Wird verwendet, um das erste Element in einer Gruppe von Geschwisterelementen desselben Typs zu lokalisieren🎜🎜
selector:last- of-type code>🎜<td>Wird verwendet, um das letzte Element in einer Gruppe von Geschwisterelementen desselben Typs zu lokalisieren🎜🎜</td> <tr><td><code>selector:nth-of-type(n) code>🎜<td> Wird verwendet, um das n-te Element in einer Gruppe von Geschwisterelementen desselben Typs zu finden🎜🎜</td> <tr> <td> <code>selector:nth-last-of-type(n)🎜 Wird zum Auffinden des n-ten Elements in umgekehrter Reihenfolge in einer Gruppe von Geschwisterelementen desselben Typs verwendet. 🎜🎜
selector:only-child🎜 wird zum Auffinden verwendet ein Element ohne Geschwisterelemente🎜 🎜
selector:only-of-type🎜 Wird verwendet, um ein Element zu finden, das keine Geschwisterelemente desselben Typs hat🎜🎜
selector: empty🎜 wird verwendet, um ein Element zu finden, das keine untergeordneten Elemente hat und das Element keinen Textinhalt hat🎜🎜
selector:root🎜 Wird verwendet, um das Stammelement in der HTML-Seite zu finden ()🎜🎜🎜🎜

CSS中的结构伪类选择器是根据HTML页面中元素之间的关系来定位HTML元素,从而减少对HTML元素的id属性和class属性的依赖。

:first-child与:last-child

:first-child伪类用来定义一组兄弟元素的第一个元素而:last-child伪类则是定位一组兄弟元素的最后一个元素。

如下示例代码展示了:first-child伪类和:last-child伪类的用法:

HTML结构如下:

Nach dem Login kopieren
Nach dem Login kopieren
        <li>涂山红红     <li>涂山苏苏     <li>涂山蓉蓉     <li>涂山雅雅

CSS代码如下:

li:first-child {
    color: red;
}
li:last-child {
    color: blue;
}
Nach dem Login kopieren
Nach dem Login kopieren

代码运行结果如下图所示:

CSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse

:first-child 伪类可以使用:nth-child(n)伪类改写为:nth-child(1),而:last-child伪类可以使用:nth-last-child(n)伪类改写为:nth-last-child(1)

:first-child伪类和:last-child伪类经常会引起误解。例如 li:first-child 是用来定位所有<li>元素中第一个作为子级元素的,而不是定位<li>元素的第一个子级元素。

:first-of-type与:last-of-type

:first-of-type伪类和:last-of-type伪类一个用于定位一组元素中的第一个兄弟元素,一个用来定位最后一个。

如下示例代码展示了:first-of-type伪类和:last-of-type伪类的用法:

HTML结构如下:

<h3>狐妖小红娘</h3>
<p>涂山红红</p>
<p>涂山苏苏</p>
Nach dem Login kopieren

CSS代码如下:

p:first-of-type {
    color: red;
}

p:last-of-type {
    color: blue;
}
Nach dem Login kopieren

代码运行结果如下图所示:

CSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse

:first-of-type伪类与:last-of-type伪类的用法一定要和:first-child伪类与:last-child伪类的用法区分开。以:first-of-type伪类和:first-child伪类为例来说明:

    <li>

    :first-of-type伪类是定位一组同类型的兄弟元素中的第一个元素,不管这个元素在兄弟元素中的位置如何。

    <li>

    :first-child伪类是定位一组兄弟元素中的第一个元素,这些兄弟元素不一定是同类型的。

如果将上述示例代码中的:first-of-type伪类改写为:first-child伪类的话,将不会生效。

:nth-child(n)与:nth-last-child(n)

:nth-child(n)伪类和:nth-last-child(n)伪类都是CSS3中新增的选择器,这两个选择器的用法基本上是一致的。区别在于:nth-last-child(n)伪类是倒序方式定位元素,也就是说,:nth-last-child(n)伪类是从一组元素的结尾开始的。

接下来,主要以:nth-child(n)伪类为例进行讲解。:nth-child(n)伪类中的n参数的含义具有3种情况:

    <li>

    数字值:任意一个大于 0 的正整数。例如 #example td:nth-child(1) 表示定位ID为example的父元素下所有

元素中的第一个元素。<li>

关键字:odd表示奇数,等同于:nth-child(2n)even表示偶数,等同于:nth-child(2n+1)

<li>

格式为(an+b)公式:a表示周期的长度(步长 ),n表示计数器(从 0 开始 ),而b则表示偏移值。

如下示例代码展示了:nth-child(n)伪类(实现表格隔行换色效果)的用法:

nbsp;html>



    <meta>
    <meta>
    <meta>
    <title>nth-child伪类</title>
    <style>
        table {
            border-collapse: collapse;
            border-spacing: 0;
            width: 100%;
        }

        th,
        td {
            border-top: 1px solid lightcoral;
            text-align: center;
        }

        /* 最后一行单元格在底部增加一个边框效果 */
        tr:last-child td {
            border-bottom: 1px solid lightcoral;
        }

        /* 实现隔行换色 */
        tr:nth-child(even) {
            background-color: aquamarine;
        }
    </style>



    
Nach dem Login kopieren
                                                                                                                                                                                                                                
姓名区域
梵云飞西西域
欢都落兰南国
石宽北山
涂山红红涂山

代码运行结果如下图所示:

CSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse

:nth-child(n)伪类的n参数用法中比较复杂的是使用(an+b)公式用法,如下示例列举了一些公式用法:

    <li>

    :nth-child(5n):定位元素的序号是5 [=5×1]、10 [=5×2]、15 [=5×3]等。

    <li>

    :nth-child(3n+4):定位元素的序号是4 [=(3×0)+4]、7 [=(3×1)+4]、10 [=(3×2)+4]、13 [=(3×3)+4] 等。

    <li>

    :nth-child(-n+3):定位元素的序号是3 [=-0+3]、2 [=-1+3]、1 [=-2+3]。

:nth-child(n)伪类与:nth-last-child(n)伪类和:nth-of-type(n)伪类与:nth-last-of-type(n)伪类的区别,类似于:first-of-type伪类与:last-of-type伪类和:first-child伪类与:last-child伪类的区别。

:empty

:empty伪类是用来定位没有任何子级元素或文本内容的元素,其中文本内容包含了空白。但是HTML的注释是不影响:empty伪类定位元素的。

如下示例代码展示了:empty伪类的用法:

nbsp;html>



    <meta>
    <meta>
    <meta>
    <title>empty伪类</title>
    <style>
        body {
            /* 开启flex布局 */
            display: flex;
        }

        .box {
            background: pink;
            height: 80px;
            width: 80px;
            margin: 0 20px;
        }

        .box:empty {
            background: lime;
        }
    </style>



    <div></div>
    <div>这个元素的背景是粉色的</div>
    <div>
        <!-- 这是一个注释 -->
    </div>


Nach dem Login kopieren

代码运行结果如下图所示:

CSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse

:root

CSS中的:root伪类选择器比较简单,它代表的就是元素。

如下代码展示的:root伪类的用法:

:root {
    height: 100vh;
    width: 100vw;
    background-color: dodgerblue;
}
Nach dem Login kopieren

代码运行结果如下图所示:

CSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse

3、UI元素状态伪类选择器

使用UI伪类选择器可以根据元素的状态匹配元素,下方列表将简单总结这类选择器:

选择器 说明
:enabled 选择启用状态的元素
:disabled 选择禁用状态的元素
:checked 选择被选中的input元素(只用于单选按钮和复选框)
:default 选择默认元素
:valid 根据输入验证选择有效或者无效的input元素
:in-range/:out-of-range 选择在制定范围之内或者职位受限的input元素
:required/:optional 根据是否允许:required属性选择input元素

4、输入伪类选择器

关于表单输入的伪类,主要介绍三种常用的,具体如下:

    <li>

    :enabled:disabled

    <li>

    :read-only:read-write

    <li>

    :checked

:enabled和:disabled

:enabled:disabled一这组伪类选择器分别表示禁用状态与可用状态,这组为了使完全对立的。

:enabled伪类的实际用处并不大,因为大多元素默认都是可用的,所以写不写意义并不大。

如下代码展示了:enabled:disabled的用法:

nbsp;html>



  <meta>
  <meta>
  <meta>
  <title>:enabled和:disabled的用法</title>
  <style>
    input:enabled {
      outline: none;
    }

    input:disabled {
      /* 禁用状态背景为灰色 */
      background-color: gray;
    }
  </style>



  <input>
  <input>


Nach dem Login kopieren

代码运行结果如下所示:

CSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse

由上图我们看到禁用状态的<input>的背景颜色为灰色。

:read-only和:read-write

:read-only:read-write一这组伪类选择器分别表示只读和可写状态,同样的:read-write也很鸡肋,因为默认就是可读写,示例代码如下所示:

nbsp;html>



  <meta>
  <meta>
  <meta>
  <title>:read-only和:read-write</title>
  <style>
    input:read-write {
      outline: none;
    }

    /* 只读状态 */
    input:read-only {
      color: red;
      outline: none;
    }
  </style>



  <input>
  <input>


Nach dem Login kopieren

代码运行结果如下所示:

CSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse

我们可以看到,只读的<input>的文字颜色为红色。

:checked

:checked伪类可以说是众多伪类选择器中使用频率很高的一个伪类选择器,该选择器表示选中的状态,就比如下面这个例子:

nbsp;html>



  <meta>
  <meta>
  <meta>
  <title>checked伪类</title>
  <style>
    input:checked {
      /* 为选中的增加阴影 */
      box-shadow: 2px 2px 2px 2px lightcoral;
    }
  </style>



  <input>
  <input>


Nach dem Login kopieren

CSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse

关于:checked伪类,最佳实践是配合<label></label>元素来实现,现在我们就通过:checked<label></label>元素来实现一个开关的效果。

示例代码如下:

nbsp;html>



  <meta>
  <meta>
  <meta>
  <title>开关</title>
  <style>
    [type="checkbox"] {
      width: 44px;
      height: 26px;
      position: absolute;
      opacity: 0;
      pointer-events: none;
    }

    /* 开关样式 */
    .cs-switch {
      display: inline-block;
      width: 44px;
      height: 26px;
      border: 2px solid;
      border-radius: 26px;
      background-color: currentColor;
      box-sizing: border-box;
      color: silver;
      transition: all .2s;
      cursor: pointer;
    }

    .cs-switch::before {
      content: "";
      display: block;
      width: 22px;
      height: 22px;
      border-radius: 50%;
      background-color: #fff;
      transition: margin-left .2s;
    }


    :checked+.cs-switch {
      color: blueviolet;
    }

    /* 选中移动 */
    :checked+.cs-switch::before {
      margin-left: 18px;
    }

    /* 禁用状态 */
    :disabled+.cs-switch {
      opacity: .4;
      cursor: not-allowed;
    }
  </style>



  <!-- 普通状态 -->
  <input>
  <label></label>
  <!-- 选中状态 -->
  <input>
  <label></label>
  <!-- 禁用状态 -->
  <input>
  <label></label>
  <!-- 选中禁用状态 -->
  <input>
  <label></label>


Nach dem Login kopieren

运行效果如下所示:

CSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse

5、逻辑组合伪类

:not()否定的伪类

    <li>

    优先级为0,优先级由括号中的表达式决定; :not(p)由p决定

    <li>

    可以不断的级联;
    input:not(:disabled):not(:read-only) {} ;表示处于不禁用,也不处于只读的状态

    <li>

    不可出现多个表达式,也不支持选择符;
    li:not(li, od); 尚未支持

:not()的巨大的用处在于告别重置的问题;

重置web中的样式,就好比我们在项目中经常使用到的:添加.active类名来控制样式的显示与隐藏/改变样式,往常的写法都是:

.cs_li {
	display: none;
}
.cs_li.active {
	display: block;
}
Nach dem Login kopieren

而我们可以使用:not()伪类,可以更好的实现:

.cs_li:not(.active) {
	display: none;
}
Nach dem Login kopieren

在列表中的设置<li>的边框时也可使用其:not()

.cs_li:not(:nth-of-type(5n)){
	margin-right: 10px; // 除5的倍数项都设置右边的外边距
}
Nach dem Login kopieren

:is()的作用是简化选择器

平时我们开发中经常会用到类似下面的语法:

.cs_li_a > img,
.cs_li_b > img,
.cs_li_c > img {
	display: none;
}
Nach dem Login kopieren

使用:is()简化可写成:

:is(.cs_li_a, .cs_li_b, .cs_li_c) > img {
	display: none;
}
Nach dem Login kopieren

还有一种嵌套之间的关系,相互嵌套,交叉组合得出结论;如下方所示

ol ol li,
ol ul li, 
ul ul li,
ul ol li {
	margin-left: 20px;
}
Nach dem Login kopieren

使用:is()伪类强化,则只需要几行代码:

:is(ol, ul) :is(ol, ul) li{
	margin-left: 20px;
}
Nach dem Login kopieren

<strong>:where()</strong>

:where()与上方的:is()相同,唯一不同的是级别永远为0,也不受括号里面的表达式影响;

使用的方法与:is()完全相同,但优先级永远是0;底下的括号中的优先级完全被忽略,俩句是同一个优先级,并且级别等同于.conten选择器

:where(.article, section) .conten {}
:where(#article, #section) .conten {
Nach dem Login kopieren

(学习视频分享:web前端入门

Das obige ist der detaillierte Inhalt vonCSS-Pseudo-Selektor-Lernen, Pseudoklassen-Selektor-Analyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage