Technologieaustausch

CSS [ausführliche Erklärung] Stilselektoren (einschließlich ID, Klasse, Tag, Platzhalter, Attribut, Pseudoklasse, Pseudoelement, Inhaltsattribut, Kinder, Nachkommen, Brüder, benachbarte Brüder, Schnittmenge, Vereinigung und andere Selektoren)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

CSS Stilauswahl, wird verwendet, um HTML-Elemente auf der Seite auszuwählen, um CSS-Stile hinzuzufügen.

Sortieren Sie nach der Rendering-Leistung von hoch nach niedrig Gefolgt von:

AUSWEIS Wähler #id

Wählen Sie Elemente anhand ihres ID-Attributs aus, wobei die Groß-/Kleinschreibung beachtet werden muss

<p id="p1" >第一段</p>
  • 1
#p1{
  color: red;
}
  • 1
  • 2
  • 3

Die Verwendung wird jedoch nicht empfohlen, weil:

  • Der ID-Selektor hat eine höhere Priorität und das Zurücksetzen des Stils ist unpraktisch.
  • Der ID-Selektor wird hauptsächlich von JS verwendet

Klassenselektor .class

Über das Klassenattribut des ElementsStilBeim Klassennamen des ausgewählten Elements wird die Groß-/Kleinschreibung beachtet

Der am meisten empfohlene CSS-Selektor besteht darin, dass Klassenselektoren semantisch stark sind und sich der Stil leicht zurücksetzen lässt.

<span class="important" >重点词汇</span>
  • 1
.important{
  color: red;
  font-weight: bold;
}
  • 1
  • 2
  • 3
  • 4

Mehrere Stilklassen können demselben Element hinzugefügt werden, getrennt durch Leerzeichen.

<span class="important big" >巨大的重点词汇</span>
  • 1
.important {
  color: red;
  font-weight: bold;
}
.big {
  font-size: 60px;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Tag-Selektor 标签名

Wählen Sie Elemente anhand ihrer Tag-Namen aus, ohne Berücksichtigung der Groß- und Kleinschreibung

<a href="https://www.baidu.com/" target="_blank" >百度</a>
  • 1
a {
  text-decoration: none; /* 无文本装饰(消除默认的下划线) */
}
  • 1
  • 2
  • 3

Aufgrund der schlechten Leistung des Tag-Selektors und der hohen Wartungskosten nicht empfohlen

Wildcard-Selektor *

Wählen Sie alle HTML-Elemente auf der Seite mit Ausnahme von Pseudoelementen aus. Dies wird häufig zum Löschen des Standardstils des Browsers verwendet, wird jedoch nicht empfohlen, da es Leistung verbraucht.

/* 清除所有html标签默认的外边距和内边距 */
* {
  margin: 0;
  padding: 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5

Attributselektor [属性]

Wählen Sie Elemente basierend auf ihren Attributen und Attributwerten aus. Bei Attributen wird die Groß-/Kleinschreibung nicht beachtet, und bei Attributwerten wird die Groß-/Kleinschreibung beachtet.

Attributselektorbeschreiben
[Attribut]Wird verwendet, um Elemente mit angegebenen Attributen auszuwählen.
[Attribut=Wert]Wird verwendet, um Elemente mit angegebenen Attributen und Werten auszuwählen.
[Attribut~=Wert]Wird zum Auswählen von Elementen verwendet, deren Attributwerte ein bestimmtes Vokabular enthalten. Es eignet sich sehr gut für Szenarien, die mehrere Kombinationen von Attributwerten enthalten.
[Attribut|=Wert]Der Attributwert beginnt mit der Fragmentauswahl. Der Wert muss ein ganzes Wort sein.
[Attribut^=Wert]Entspricht jedem Element, dessen Attributwert mit dem angegebenen Wert beginnt.
[Attribut$=Wert]Entspricht jedem Element, dessen Attributwert mit dem angegebenen Wert endet.
[Attribut*=Wert]Entspricht jedem Element, dessen Attributwert den angegebenen Wert enthält.

Pseudo-Klassenselektor :状态名

Wählen Sie Elemente basierend auf ihren unterschiedlichen Zuständen aus

同一个标签,不同的状态,有不同的样式,就叫做“伪类”
  • 1
Pseudo-KlassenselektorBeispielBeispielbeschreibung
:aktiva:aktiv Wählen Sie den aktiven Link aus. (Wenn die Maus auf das Etikett klickt, sie aber nicht loslässt)
:aktiviertEingabe: aktiviertWählen Sie jedes ausgewählte aus<input> Element.
:deaktiviertEingabe: deaktiviertWählen Sie jeweils deaktiviert aus<input> Element.
:leerp:leerWählen Sie jedes Element aus, das keine untergeordneten Elemente hat<p> Element.
:ermöglichtEingabe: aktiviertWählen Sie jede aktivierte Option aus<input> Element.
:erstes Kindp:erstes-KindWählt jedes Element aus, das das erste untergeordnete Element seines übergeordneten Elements ist<p> Element.
:Erster des Typsp:erster-des-TypsWählen Sie das erste als übergeordnetes Element aus<p>Element von jedem<p> Element.
:FokusEingabe: FokusWählen Sie diejenige aus, die den Fokus erhält<input> Element.
:schwebenein:schwebenWählen Sie den Link aus, über den Sie mit der Maus fahren.
:im BereichEingabe: im BereichWählt einen Wert mit einem angegebenen Bereich aus<input> Element.
:ungültigEingabe: ungültigWählen Sie alle mit ungültigen Werten aus<input> Element.
:lang(Sprache)p:lang(it)Wählen Sie jeden lang-Attributwert aus, der mit „it“ beginnt.<p> Element.
:letztes Kindp:letztes-KindWählt jedes Element aus, das das letzte untergeordnete Element seines übergeordneten Elements ist<p> Element.
:letzter-vom-Typp:letzter-vom-TypWählen Sie das letzte als übergeordnetes Element aus<p>Element von jedem<p> Element.
:Verknüpfungeine VerbindungWählen Sie alle nicht besuchten Links aus.
:nicht(Wähler):nicht§Wählen Sie jedes Nicht aus<p> Elemente von Elementen.
:n-tes-Kind(N)p:n-tes-Kind(2)Wählt jedes zweite untergeordnete Element aus, das sein übergeordnetes Element ist<p> Element.
:n-tes-letztes-Kind(N)p:n-tes-letztes-Kind(2)Wählt jedes zweite untergeordnete Element aus, das ein übergeordnetes Element ist<p> Elemente, gezählt ab dem letzten untergeordneten Element.
:n-ter-letzter-vom-Typ(N)p:n-ter-letzter-vom-Typ(2)Wählen Sie das zweite als übergeordnetes Element aus<p>Element von jedem<p>Elemente, gezählt ab dem letzten untergeordneten Element
:n-ter-vom-Typ(N)p:n-ter-Typ(2)Wählen Sie das zweite als übergeordnetes Element aus<p>Element von jedem<p> Element.
:nur vom Typp:nur vom TypWählen Sie das einzige aus, das ihm übergeordnet ist<p>Element von jedem<p> Element.
:Einzelkindp:EinzelkindWählt das einzige untergeordnete Element aus, das sein übergeordnetes Element ist<p> Element.
:OptionalEingabe: optionalWählen Sie ohne das Attribut „erforderlich“ aus<input> Element.
:außer ReichweiteEingabe: außerhalb des BereichsWählen Sie Werte außerhalb des angegebenen Bereichs aus<input> Element.
:schreibgeschütztEingabe: schreibgeschütztWählen Sie diejenigen aus, bei denen das Attribut „schreibgeschützt“ angegeben ist<input> Element.
:lesen SchreibenEingabe: Lesen/SchreibenWählen Sie ohne das Attribut „readonly“ aus<input> Element.
:erforderlichEingabe erforderlichWählen Sie das aus, bei dem das Attribut „erforderlich“ angegeben ist<input> Element.
:WurzelWurzelWählen Sie das Stammelement des Elements aus.
:Ziel#news:zielWählen Sie das aktuell aktive #news-Element aus (klicken Sie auf die URL, die den Ankernamen enthält).
:gültigEingabe: gültigWählen Sie alle mit gültigen Werten aus<input> Element.
:hat besuchta:besuchtWählen Sie alle besuchten Links aus.

Verwenden Sie Pseudoklassenselektoren in Listen

Pseudo-KlassenselektorBedeutung
li:ntes-Kind(2)Das zweite Li
li:ntes-Kind(n)All die Dinge
li:ntes-Kind(2n)Alle geraden li
li:n-tes-Kind(2n+1)Alle ungeraden li
li:n-tes-Kind(-n+5)Die ersten 5 li
li:n-tes-letztes-Kind(-n+5)Die letzten 5 li
li:ntes-Kind(7n)Wählen Sie Vielfache von 7 aus

n bedeutet 0,1,2,3,4,5,6,7,8 ... (Es ist ungültig, wenn n kleiner als 1 ist, da n = 0 nicht ausgewählt wird.)

Verwenden Sie Pseudoklassenselektoren in Tabellen

  • tr:nth-child(odd):Entspricht den Zeilen 1, 3 und 5 der Tabelle, was äquivalent isttr:nth-child(2n+1)
  • tr:nth-child(even): Entspricht den Zeilen 2, 4 und 6 der Tabelle, was äquivalent isttr:nth-child(2n)
  • Praktisches Beispiel für einen Pseudoklassenselektor

    Pseudoelementselektor ::

    Wird verwendet, um einen Teil eines Elements und nicht das gesamte Element auszuwählen und zu formatieren

    CSS2中伪元素采用单冒号前缀语法, CSS2.1中伪元素改用双冒号前缀,所有支持双冒号的浏览器同样也支持旧的单冒号语法。考虑浏览器兼容性的话,推荐使用旧的单冒号语法,否则建议使用新的双冒号前缀
    
    • 1

    ::before Und::after

    Es muss zusammen mit dem Inhaltsattribut verwendet werden, um den Inhalt vor und nach dem Element festzulegen. Weitere Informationen finden Sie unter
    https://blog.csdn.net/weixin_41192489/article/details/115100040

    Häufig verwendete praktische Beispiele:

    ::first-letter Initialen

    <p>很久很久以前</p>
    <p>Long long ago</p>
    
    • 1
    • 2
    p::first-letter {
      font-size: 2em;
      color: red;
    }
    
    • 1
    • 2
    • 3
    • 4

    Fügen Sie hier eine Bildbeschreibung ein

    ::first-line erste Reihe

      <div style="width: 120px">
        <p>很久很久以前,有一个白发苍苍的老人</p>
      </div>
    
    • 1
    • 2
    • 3
    p::first-line {
      color: red;
    }
    
    • 1
    • 2
    • 3

    Fügen Sie hier eine Bildbeschreibung ein

    ::selection Ziehen Sie die Maus, um den Bereich auszuwählen

    <p>很久很久以前,有一个白发苍苍的老人</p>
    
    • 1
    p::selection {
      color: red;
      background-color: yellow;
    }
    
    • 1
    • 2
    • 3
    • 4

    Fügen Sie hier eine Bildbeschreibung ein

    ::placeholder Textplatzhalter

    <input placeholder="请输入" />
    
    • 1
    /* input 不写,则会选中页面所有元素的占位符 */
    input::placeholder {
      color: red;
    }
    
    • 1
    • 2
    • 3
    • 4

    Fügen Sie hier eine Bildbeschreibung ein

    Beziehungsauswahl

    Wählen Sie Elemente basierend auf Beziehungen zwischen Elementen aus

    Nachkommenselektor >

    Das in ein Tag eingeschlossene Tag der ersten Ebene ist sein Nachkomme

    <div>
        <p>我是div的儿子</p>
    </div>
    
    • 1
    • 2
    • 3
    div>p{
      color:red;
    }
    
    • 1
    • 2
    • 3

    Nachkommenselektor 空格

    Alle Tags innerhalb eines Tags sind seine Nachkommen

      <div class="parent">
        <p class="red">我是子代(属于后代)</p>
        <p>我是子代(属于后代,但没有 .red)</p>
        <div>
          <div class="red">我是孙代(也属于后代)</div>
        </div>
      </div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    /* 所有属于.parent元素内部的.red元素都将被染成红色。*/
    .parent .red {
      color: red;
    }
    
    • 1
    • 2
    • 3
    • 4

    Fügen Sie hier eine Bildbeschreibung ein

    Geschwisterauswahl ~

    Wählen Sie unter demselben übergeordneten Element das angegebene Element ausnachAlle Elemente sind auf derselben Ebene, so dass sie streng genommen aufgerufen werden sollten 后面兄弟选择器

    <div>
      <button>按钮1(不会变红)</button>
      <p>段落</p>
      <button>按钮2(会变红)</button>
    </div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    p ~ button {
      color: red;
    }
    
    • 1
    • 2
    • 3

    Fügen Sie hier eine Bildbeschreibung ein

    CSS-Nr 前面兄弟选择器 , können Sie auf den folgenden Link verweisen, um die Implementierung zu simulieren
    https://blog.csdn.net/weixin_41192489/article/details/121784196

    Nachbar-Geschwister-Selektor +

    Wählt das nächste Element aus, das unmittelbar auf ein Element folgt

      <div class="parent">
        <p>段落</p>
        <button>按钮1</button>
        <button>按钮2</button>
      </div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    p + button {
      color: red;
    }
    
    • 1
    • 2
    • 3

    Fügen Sie hier eine Bildbeschreibung ein

    Kreuzungsauswahl

    Wählen Sie Elemente auf der Seite aus, die mit mehreren Selektoren gleichzeitig übereinstimmen

    • Es gibt keine Leerzeichen zwischen Selektoren (Leerzeichen sind untergeordnete Selektoren).
    • Wenn ein Tag-Selektor vorhanden ist, muss der Tag-Selektor zuerst platziert werden
        <p class="red">很久很久以前1</p>
        <p>很久很久以前2</p>
    
    • 1
    • 2
    /* 选中 p 标签中class值含 red 的元素 */
    p.red {
      color: red;
    }
    
    • 1
    • 2
    • 3
    • 4

    Fügen Sie hier eine Bildbeschreibung ein

    Union-Selektor ,

    Unter mehreren Selektoren wird einer ausgewählt, solange einer davon erfüllt ist.

    • Wird zwischen mehreren Selektoren verwendet , separate
     <p class="error">报错信息</p>
     <p class="important">重要信息</p>
     <p>其他信息</p>
    
    • 1
    • 2
    • 3
    .error,
    .important {
      color: red;
    }
    
    • 1
    • 2
    • 3
    • 4

    Fügen Sie hier eine Bildbeschreibung ein