Maison > interface Web > tutoriel CSS > Introduction détaillée à l'ordre de priorité des sélecteurs en CSS

Introduction détaillée à l'ordre de priorité des sélecteurs en CSS

高洛峰
Libérer: 2017-03-08 15:23:17
original
1629 Les gens l'ont consulté

Quelle est la particularité

Lors de l'application de styles CSS à un élément HTML, il existe souvent de nombreuses façons de trouver l'élément, telles que :

<p id="container" class="wrap_sty">   
    <p class="pra">这是一个段落</p>   
</p>   
<style>   
    #container p { color:red }   
    p p { color:green }   
    p { color:yellow }    
</style>
Copier après la connexion

On constate qu'il existe de nombreuses façons d'agir sur un élément HTML, bien plus que celles-ci. Ainsi, si plusieurs styles identiques sont appliqués à un élément, quel style sera affiché à la fin ? CSS utilise une méthode appelée spécificité pour prioriser plusieurs sélecteurs.

Spécificité CSS
La spécificité des sélecteurs est divisée en 4 niveaux, a b c d, de gauche à droite, le plus à gauche est prioritaire, s'il y a plusieurs règles de sélection Pour les sélecteurs du même type, 1.
S'il s'agit d'un style interne HTML, alors la spécificité est prioritaire, a=1
La spécificité du sélecteur d'identifiant est b, et le
sélecteur de classe, le sélecteur de pseudo-classe et le sélecteur d'attribut sont c
Le sélecteur d'étiquette et le sélecteur de pseudo-éléments sont d
Parlons d'abord de quelques types de sélecteur :
Sélecteur 1.id

#myid { ... }
Copier après la connexion

2. Sélecteur de classe

.myclass { ... }
Copier après la connexion

3. 🎜>4. Sélecteur d'attribut

p { ... }
Copier après la connexion

Étant donné que la plupart des documents tels que W3CSCHOOL ne l'expliquent pas en détail, beaucoup de gens peuvent penser que le sélecteur d'attribut est un tel p [title="mytitle"] ou #id[title="mytitle"], etc., est un sélecteur d'attribut à proprement parler, ce n'est pas un pur sélecteur d'attribut, mais une combinaison de sélecteur d'identifiant et de balise, etc. sont composés de sélection d’attributs.

5. Sélecteur de pseudo-classe
[title="mytitle"] { ... }
Copier après la connexion


Les sélecteurs de pseudo-classe courants sont : Pseudo-classe de lien, :link, :visited , pour les éléments d'ancrage.

Pseudo-classes dynamiques, :hover, :focus, :active, pour toute sélection.
p:hover { ... }
Copier après la connexion

6. Sélecteur de pseudo-éléments




Le pseudo-élément et la pseudo-classe sont des concepts complètement différents car ils sont appelés pseudo-éléments. peut en effet générer un élément HTML virtuel, mais le pseudo-élément ne peut pas être obtenu par le DOM. Il existe de nombreuses applications des pseudo-éléments, les plus courantes sont : après avoir effacé les flotteurs :

p::after { ... }   
p::before { ... }
Copier après la connexion


Exemple de spécificité CSS

<ul>   
    <li>A</li>   
    <li>B</li>   
</ul>   
<style>   
    li { float:left }   
    ul::after { content: ""; display: block; clear: both }   
</style>
Copier après la connexion
Voici quelques exemples de spécificité du sélecteur CSS :


Si deux règles ont la même spécificité, celle définie ultérieurement remplacera celle définie en premier.

Importance CSS
选择器特殊性以10为基数的特殊性
style="color: red"1, 0, 0, 01000
#id {}0, 1, 0, 0100
#id #aid0, 2, 0, 0200
.sty {}0, 0, 1, 010
.sty p[title=""] {}0, 0, 2, 020
p:hover {}0, 0, 1, 010
p {}0, 0, 0, 11
ul::after {}0, 0, 0, 11
p p {}0, 0, 0, 22

Il y a une autre chose dans CSS qui peut ignorer la spécificité, et c'est !important Les propriétés CSS utilisant cette balise ont toujours la priorité.


Le deuxième style aura priorité sur le premier, même si le sélecteur d'identifiant est plus spécifique que le sélecteur de classe.
Si les deux propriétés ont !important alors la spécificité détermine la priorité.

#id { color: red }   
.class { color: yellow !important }
Copier après la connexion

Le résultat est que le premier style prime sur le second.
La prise en charge de !important par IE6 n'est pas complète. Dans IE6, si l'attribut !important est défini en premier dans un sélecteur, puis que le même attribut sans !important est défini plus tard, alors !important ne sera pas valide.

#id { color: red !important }   
.class { color: yellow !important }
Copier après la connexion

Dans IE6, il ne peut pas être jauni, alors voyons un peu de sang !
IE6/7 peut également ajouter quelques ingrédients après !important sans perdre le goût, mais il est recommandé de ne pas être si ennuyeux !

p {   
  color: yellow !important;     
  color: red;   
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal