Partage de technologie

Sélecteurs de style CSS [explication détaillée] (y compris ID, classe, balise, caractère générique, attribut, pseudo-classe, pseudo-élément, attribut de contenu, enfants, descendants, frères, frères adjacents, intersection, union et autres sélecteurs)

2024-07-12

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

CSS Sélecteur de style, utilisé pour sélectionner des éléments HTML dans la page pour ajouter des styles CSS.

Trier par performances de rendu de haut en bas Suivi de:

IDENTIFIANT Sélecteur #id

Sélectionnez les éléments par leur attribut id, sensible à la casse

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

Mais son utilisation est déconseillée car :

  • Le sélecteur d'identifiant a une priorité plus élevée et n'est pas pratique pour réinitialiser le style.
  • Le sélecteur d'identifiant est principalement utilisé par JS

sélecteur de classe .class

Via l'attribut class de l'élémentstyleLe nom de classe de l'élément sélectionné est sensible à la casse

Le sélecteur CSS le plus recommandé est que les sélecteurs de classe ont une sémantique forte et sont faciles à réinitialiser.

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

Plusieurs classes de style peuvent être ajoutées au même élément, séparées par des espaces.

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

sélecteur de balises 标签名

Sélectionnez les éléments par leurs noms de balises, sans tenir compte de la casse

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

Non recommandé en raison des mauvaises performances du sélecteur de balises et des coûts de maintenance élevés

sélecteur de caractères génériques *

Sélectionnez tous les éléments HTML de la page à l'exception des pseudo-éléments. Il est souvent utilisé pour effacer le style par défaut du navigateur, mais il n'est pas recommandé car cela consomme des performances.

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

sélecteur d'attribut [属性]

Sélectionnez les éléments en fonction de leurs attributs et de leurs valeurs d'attribut. Les attributs ne sont pas sensibles à la casse et les valeurs d'attribut sont sensibles à la casse.

sélecteur d'attributdécrire
[attribut]Utilisé pour sélectionner des éléments avec des attributs spécifiés.
[attribut=valeur]Utilisé pour sélectionner des éléments avec des attributs et des valeurs spécifiés.
[attribut~=valeur]Utilisé pour sélectionner des éléments dont les valeurs d'attribut contiennent un vocabulaire spécifié. Il est très approprié pour les scénarios contenant plusieurs combinaisons de valeurs d'attribut.
[attribut|=valeur]Valeur d'attribut commençant le sélecteur de fragment, la valeur doit être un mot entier.
[attribut^=valeur]Correspond à chaque élément dont la valeur d'attribut commence par la valeur spécifiée.
[attribut$=valeur]Correspond à chaque élément dont la valeur d'attribut se termine par la valeur spécifiée.
[attribut*=valeur]Correspond à chaque élément dont la valeur d'attribut contient la valeur spécifiée.

Sélecteur de pseudo-classe :状态名

Sélectionner des éléments en fonction de leurs différents états

同一个标签,不同的状态,有不同的样式,就叫做“伪类”
  • 1
Sélecteur de pseudo-classeexempleExemple de description
:actifa:actif Sélectionnez le lien actif. (Quand la souris clique sur l'étiquette mais ne la lâche pas)
:vérifiéentrée : vérifiéeSélectionnez chaque sélectionné<input> élément.
:désactivéentrée:désactivéeSélectionnez chaque handicapé<input> élément.
:videp:videSélectionnez chaque élément qui n'a aucun élément enfant<p> élément.
:activéentrée:activéeSélectionnez chaque activé<input> élément.
:premier enfantp:premier-enfantSélectionne chaque élément qui est le premier enfant de son parent<p> élément.
:premier-de-typep:premier-de-typeSélectionnez le premier comme parent<p>élément de chacun<p> élément.
:se concentrerentrée:focusChoisissez celui qui attire l'attention<input> élément.
:flottera:survolerSélectionnez le lien sur lequel vous passez la souris.
:dans la gammeentrée : dans la plageSélectionne une valeur avec une plage spécifiée<input> élément.
:invalideentrée:invalideSélectionnez tout avec des valeurs non valides<input> élément.
:lang(langue)p:lang(it)Sélectionnez chaque valeur d'attribut de langue commençant par "it"<p> élément.
:dernier enfantp:dernier-enfantSélectionne chaque élément qui est le dernier élément enfant de son parent<p> élément.
:dernier-de-typep:dernier-de-typeSélectionnez le dernier comme parent<p>élément de chacun<p> élément.
:lienun lienSélectionnez tous les liens non visités.
:pas(sélecteur):pas§Sélectionnez chaque non<p> éléments d'éléments.
:nth-enfant(n)p:nth-enfant(2)Sélectionne chaque deuxième élément enfant qui est son parent<p> élément.
:nth-dernier-enfant(n)p:nth-dernier-enfant(2)Sélectionne chaque deuxième élément enfant qui est un parent<p> Éléments, en comptant à partir du dernier élément enfant.
:nth-dernier-de-type(n)p:nth-dernier-de-type(2)Sélectionnez le deuxième comme parent<p>élément de chacun<p>éléments, en comptant à partir du dernier élément enfant
:nth-of-type(n)p:ntième-de-type(2)Sélectionnez le deuxième comme parent<p>élément de chacun<p> élément.
:uniquement de typep:uniquement de typeSélectionnez le seul qui est son parent<p>élément de chacun<p> élément.
:fils uniquep:enfant-uniqueSélectionne le seul élément enfant qui est son parent<p> élément.
:facultatifentrée : facultativeSélectionner sans l'attribut "obligatoire"<input> élément.
:hors de portéeentrée : hors de portéeSélectionnez des valeurs en dehors de la plage spécifiée<input> élément.
:lecture seulemententrée : lecture seuleSélectionnez ceux avec l'attribut "readonly" spécifié<input> élément.
:lire écrireentrée : lecture-écritureSélectionner sans l'attribut "readonly"<input> élément.
:requisentrée : obligatoireSélectionnez celui avec l'attribut "obligatoire" spécifié<input> élément.
:racineracineSélectionnez l'élément racine de l'élément.
:cible#actualités:cibleSélectionnez l'élément #news actuellement actif (cliquez sur l'URL contenant le nom de l'ancre).
:valideentrée:valideSélectionnez tout avec des valeurs valides<input> élément.
:a visitéa:visitéSélectionnez tous les liens visités.

Utiliser des sélecteurs de pseudo-classes dans les listes

Sélecteur de pseudo-classesignification
li:nth-child(2)Le deuxième Li
li:nth-child(n)Toutes les choses
li:nth-child(2n)Tous les li pairs
li:nth-enfant(2n+1)Tous les li impairs
li:nth-child(-n+5)Les 5 premiers Li
li:nth-dernier-enfant(-n+5)Les 5 derniers Li
li:nth-child(7n)Sélectionnez des multiples de 7

n signifie 0,1,2,3,4,5,6,7,8... (Il n'est pas valide lorsque n est inférieur à 1, car n = 0 ne sera pas sélectionné)

Utiliser des sélecteurs de pseudo-classes dans les tableaux

  • tr:nth-child(odd):Correspond aux lignes 1, 3 et 5 du tableau, ce qui équivaut àtr:nth-child(2n+1)
  • tr:nth-child(even): Correspond aux lignes 2, 4 et 6 du tableau, ce qui équivaut àtr:nth-child(2n)
  • Exemple pratique de sélecteur de pseudo-classe

    Sélecteur de pseudo-éléments ::

    Utilisé pour sélectionner et styliser une partie d'un élément, plutôt que l'élément entier

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

    ::before et::after

    Il doit être utilisé avec l'attribut content pour définir le contenu avant et après l'élément. Pour plus de détails, voir.
    https://blog.csdn.net/weixin_41192489/article/details/115100040

    Exemples pratiques couramment utilisés :

    ::first-letter Initiales

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

    Insérer la description de l'image ici

    ::first-line première rangée

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

    Insérer la description de l'image ici

    ::selection Faites glisser la souris pour sélectionner la zone

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

    Insérer la description de l'image ici

    ::placeholder espace réservé au texte

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

    Insérer la description de l'image ici

    Sélecteur de relation

    Sélectionnez des éléments en fonction des relations entre les éléments

    sélecteur de descendants >

    La balise de premier niveau enveloppée dans une balise est son descendant

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

    sélecteur de descendants 空格

    Toutes les balises au sein d'une balise sont ses descendants

      <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

    Insérer la description de l'image ici

    sélecteur de frères et sœurs ~

    Sous le même élément parent, sélectionnez l'élément spécifiéaprèsTous les éléments du même niveau, donc à proprement parler, devraient être appelés 后面兄弟选择器

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

    Insérer la description de l'image ici

    CSS non 前面兄弟选择器 , vous pouvez vous référer au lien ci-dessous pour simuler l'implémentation
    https://blog.csdn.net/weixin_41192489/article/details/121784196

    sélecteur de frère voisin +

    Sélectionne l'élément suivant immédiatement après un élément

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

    Insérer la description de l'image ici

    Sélecteur d'intersection

    Sélectionnez des éléments sur la page qui correspondent à plusieurs sélecteurs en même temps

    • Il n'y a pas d'espaces entre les sélecteurs (les espaces sont des sélecteurs descendants)
    • Si un sélecteur de balises existe, le sélecteur de balises doit être placé en premier
        <p class="red">很久很久以前1</p>
        <p>很久很久以前2</p>
    
    • 1
    • 2
    /* 选中 p 标签中class值含 red 的元素 */
    p.red {
      color: red;
    }
    
    • 1
    • 2
    • 3
    • 4

    Insérer la description de l'image ici

    Sélecteur d'union ,

    Parmi plusieurs sélecteurs, tant que l'un d'entre eux est satisfait, il sera sélectionné.

    • Utilisé entre plusieurs sélecteurs , séparé
     <p class="error">报错信息</p>
     <p class="important">重要信息</p>
     <p>其他信息</p>
    
    • 1
    • 2
    • 3
    .error,
    .important {
      color: red;
    }
    
    • 1
    • 2
    • 3
    • 4

    Insérer la description de l'image ici