Maison  >  Article  >  interface Web  >  Explication détaillée des sélecteurs complexes CSS3

Explication détaillée des sélecteurs complexes CSS3

高洛峰
高洛峰original
2017-03-24 11:22:241564parcourir

Aujourd'hui, j'ai fini de regarder la partie du sélecteur complexe CSS3 dans la vidéo, et trions les points de connaissances que j'ai appris.

1. Sélecteurs frères et sœurs : au même niveau de position, peuvent être appelés éléments frères

a, Sélecteurs frères et sœurs adjacents : suivant
Immédiatement après [l'élément actuel] (un), l'élément spécifiant le sélecteur
Syntaxe : Utilisez "+" comme conjugateur
par exemple : p+p ->p immédiatement après p Élément

<!-- 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, Sélecteur frère universel : next_all
correspond à [tous les éléments frères suivants d'un élément qui satisfont au sélecteur spécifié
Syntaxe : utilisez "~" comme conjugateur
par exemple : p~p{} -> Faire correspondre tous les p après p

2, Sélecteur d'attribut : Utiliser des éléments Les attributs attachés sont utilisés dans les sélecteurs comme conditions pour sélection d'éléments
Syntaxe : [contenu lié à l'attribut]
par exemple : [id] -> Tous les éléments avec des attributs id
p[id] ->p élément avec un attribut id
a.[ id],p[id]
b.p[id][class] ->Avoir à la fois l'élément id et class p
c, p[id="p1"] ->p élément avec la valeur d'identifiant "p1"
d, p[class~="value"]
e, p[class^ ="b"] -> Correspond à p balises dont la valeur d'attribut de classe commence par b
f, p[class*="b"] -> Correspond à la balise p dont la valeur d'attribut de classe contient b
g, p[class$="b"] -> Correspond à la balise p dont la valeur d'attribut de classe se termine avec 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~=&#39;p1&#39;]{
background-color: #cd2c2d;
color: #fff;
}
div[class ^= "us"]{
background-color: #bfb;
}
div[class$="t"]{
background-color: #bfb;
color: #333;
}

3. Pseudosélecteur de classe
a. CiblePseudo-classe : Mettre en surbrillance le HTML actif Ancre
Syntaxe : :target
b. Element State Pseudo-classe : principalement utilisée sur les éléments de formulaire
1. :enabled -> Correspond à tous les éléments activés
2. :disabled -> ; Correspond à tous les éléments désactivés
3. :checked -> Correspond à l'élément de formulaire sélectionné (applicable uniquement à la case à cocher, radio)
c. Pseudo-classe structurelle
1. :first-child -> Correspond au premier élément enfant 2. :last-child -> Correspond au dernier élément enfant appartenant à son élément parent
3. :empty -> éléments enfants (le contenu du texte ou les espaces sont également comptés comme éléments enfants)
4. :only-child -> Correspond au seul élément enfant
qui appartient à son élément parent d. sélecteurs non spécifiés
Syntaxe : :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;
}
4. Pseudo

sélecteur d'élément  : Tous ceux qui correspondent sont du contenu textuel a.
 : première lettre - > Correspond au premier caractère b,
 : première ligne -> Correspond à la première ligne Les deux sélecteurs ci-dessus , les éléments en ligne ne sont pas valides, les blocs en ligne et les niveaux de bloc peuvent être
c, ::selection -> Style de texte sélectionné par les utilisateurs de compensation européens (Firefox semble incompatible)

<!-- 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;
}
Ce qui précède est tout ce que j'ai appris dans la vidéo. S'il y a des erreurs ou des lacunes, j'espère que les téléspectateurs feront des suggestions et des corrections en temps opportun. .

Aujourd'hui, c'est le deuxième jour depuis que j'ai ouvert mon blog. C'est le premier article que j'écris ici uniquement comme mes propres notes d'étude, dans l'espoir d'enregistrer ma croissance.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn