Ich habe mir heute den Teil zum komplexen CSS3-Selektor im Video zu Ende angesehen und lasst uns die Wissenspunkte sortieren, die ich gelernt habe.
1. Geschwisterselektoren: auf derselben Positionsebene, können als Geschwisterelemente bezeichnet werden
a, Benachbarte Geschwisterselektoren: nächste
Unmittelbar nach [dem aktuellen Element] (eins) folgt das Element, das den Selektor angibt
Syntax: Verwenden Sie „+“ als Konjugator
z. B.: p+p ->p unmittelbar nach dem p-Element
<!-- demo.html --> <html> <head> <title></title> </head> <body> <p>这是第一个段落</p> <div id="d1">这是一个div</div> <span>这是一个span</span> <p class="p1">这是第二个段落</p> <b>Hello World</b> <p class="p2">这是第三个段落</p> </body> </html> /*demo.css*/ div+p{ background: yellow; } #d1+p{ background: red; } span+.p1{ background: blue; }
b, Universeller Geschwisterselektor: next_alle
stimmt mit [allen nachfolgenden] Geschwisterelementen eines Elements überein, die den angegebenen Selektor erfüllen
Syntax: Verwenden Sie „~“ als Konjugator
zB: p~p{} -> Alle p nach p abgleichen
2, Attribute-Selektor: Elemente verwenden Die angehängten Attribute werden in Selektoren als Bedingungen für verwendet Elemente auswählen
Syntax: [attributbezogener Inhalt]
z. B.: [id] -> Alle Elemente mit ID-Attributen
p[id] ->p Element mit ID-Attribut
a.[ id],p[id]
b.p[id][class] ->Mit sowohl id als auch class p-Element
c, p[id="p1"] ->p Element mit ID-Wert „p1“
d, p[class~="value"]
e, p[class^ ="b"] -> Passt zu p-Tags, deren Klassenattributwert mit b <🎜 beginnt > f, p[class*="b"] -> Übereinstimmung mit p-Tags, deren Klassenattributwert b enthält
g, p[class$="b"] -> Übereinstimmung mit dem p-Tag, dessen Klassenattributwert endet mit b
<!-- demo.html --> <html> <head> <title></title> </head> <body> <p class="clear p1 myself"> 这是第四个段落 </p> <div class="userContent"> 文本内容 </div> </body> </html> /*demo.css*/ p[class]{ color: #e4393c; } p[class~='p1']{ background-color: #cd2c2d; color: #fff; } div[class ^= "us"]{ background-color: #bfb; } div[class$="t"]{ background-color: #bfb; color: #333; }
Klassenselektor a. Ziel
Pseudoklasse : Markieren Sie aktives HTML Anker Syntax: :target
b. Element
State Pseudoklasse: Wird hauptsächlich für Formularelemente verwendet 1. :enabled -> Entspricht jedem aktivierten Element
2. :disabled -> ; Entspricht jedem deaktivierten Element
3. :checked -> Entspricht dem ausgewählten Formularelement (gilt nur für Kontrollkästchen, Radio)
Strukturelle Pseudoklasse
:first-child
-> Entspricht dem ersten untergeordneten Element <🎜, das zu seinem übergeordneten Element gehört > 2. :last-child -> Entspricht dem letzten untergeordneten Element, das zu seinem übergeordneten Element gehört 3. :empty -> Untergeordnete Elemente (Textinhalte oder Leerzeichen werden ebenfalls als untergeordnete Elemente gezählt) 4. :only-child -> Entspricht dem einzigen untergeordneten Element
, das zu seinem übergeordneten Element d gehört nicht spezifizierte Selektoren
Syntax: :not(selector)
<!-- demo01.html 目标伪类 --> <html> <head> <title></title> </head> <body> <a href="#Tom">猫和老鼠(Tom and Jerry)</a> <a href="#Atongmu">铁臂阿童木</a> <a href="#BlackCat">黑猫警长</a> <br> <a name="Tom">第一部:Tom and Jerry</a> <p style="height: 500px;">Tom and Jerry</p> <div id="Atongmu" style="height: 500px;">我是阿童木</div> <div id="BlackCat" style="height: 500px;">I am Mr Black Cat</div> </body> </html> /*demo01.css*/ a:target,div:target{ background-color: #bfb; font-size: 20pt; }
<!-- demo02.html 结构伪类 --> <html> <head> <title></title> </head> <body> <div id="d1"></div> <div id="d2"> <p>This is a p</p> </div> <div id="d3"> This id d3 </div> <div id="d4"> <b>first</b> <b>second</b> <b>third</b> <b>last</b> </div> </body> </html> /*demo02.css*/ div{ width: 100px; height: 100px; } b{ display: block; } div:empty{ background-color: #bfb; } p:only-child{ background-color: #fbf; } b:first-child{ font-size: 2em; color: #fbb; } b:last-child{ font-size: 3em; font-weight: normal; color: #bbf; }
<!-- demo03.html 伪元素状态伪类 --> <html> <head> <title></title> </head> <body> 用户名称:<input type="text"><br> 用户昵称:<input type="text" disabled value="请输入您的昵称"> <br> 性别:<input type="radio" name="rdoGender">男 <input type="radio" name="rdoGender">女 </body> </html> /*demo03.css*/ input:enabled{ color: red; } input:disabled{ border: 1px solid #f00; } input[name=rdoGender]:checked{ background-color: #bfb; }
<!-- demo04.html 否定伪类 --> <html> <head> <title></title> </head> <body> <div> 用户名称:<input type="text"><br> 用户密码:<input type="password"><br> <input type="submit" value="提交"> <input type="button" value="按钮"> </div> </body> </html> /*demo04.css*/ input:not(:last-child){ border: 1px solid #f00; }
a. : erster Buchstabe - > Übereinstimmung mit dem ersten Zeichen
b, :erste Zeile -> Übereinstimmung mit der ersten Zeile
Die beiden oben genannten Selektoren , Inline-Elemente sind ungültig, Inline-Blöcke und Blockebenen können c, ::selection -> Von europäischen Kompensationsbenutzern ausgewählter Textstil sein (Firefox scheint inkompatibel zu sein)
Das Obige ist Alles, was ich im Video gelernt habe, hoffe ich, dass die Zuschauer Vorschläge und zeitnahe Korrekturen erhalten. .
<!-- demo.html 为元素选择器 --> <html> <head> <title></title> </head> <body> <p> 风风雨雨适合于独行,且手中无伞,不打伞有不打伞的好处。湿是我的湿,冷是我的冷,即便化作雨点般的小,那么小也是我的小。 </p> <span> 风风雨雨适合于独行,且手中无伞,不打伞有不打伞的好处。湿是我的湿,冷是我的冷,即便化作雨点般的小,那么小也是我的小。 </span> </body> </html> /*demo.css*/ p{ width: 200px; border: 1px solid #bfb; margin: 10% auto; text-indent: 5px; } span{ /*float: right;*/ /*display: inline-block;*/ position: absolute; top: 300px; left: 500px; } p:first-letter{ font-size: 20pt; color: #fbb; } p:first-line{ font-style: italic; } span:first-line{ font-style: italic; background-color: #ffb; } p::selection{ background-color: #bbf; color: #fbf; }
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der komplexen CSS3-Selektoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!