Maison > interface Web > tutoriel CSS > le corps du texte

Priorité des styles dans la feuille de style CSS

高洛峰
Libérer: 2017-02-14 14:53:45
original
3017 Les gens l'ont consulté

Parfois dans le processus d'écriture du CSS, certaines restrictions ne fonctionnent toujours pas, ce qui implique la question de la couverture du style CSS, comme suit

#navigator {
    height: 100%;
    width: 200;
    position: absolute;
    left: 0;
    border: solid 2 #EEE;
}
.current_block {
    border: solid 2 #AE0;
}
Copier après la connexion

Regardez dans certains supports pédagogiques (w3schools, etc.), Il est seulement dit que l'ordre du CSS est "style sur l'élément" > "élément de style dans l'en-tête du fichier" > "fichier de style externe", mais il n'y a pas d'explication détaillée sur la façon dont les priorités de plusieurs styles identiques dans le fichier de style sont disposés. Après avoir testé et continué à chercher, j'ai appris que les priorités sont organisées comme suit :

1 Plus la sélection du sélecteur d'élément de la feuille de style est précise, plus la priorité du style est élevée. :

Style spécifié par le sélecteur d'identifiant> Style spécifié par le sélecteur de classe> Style spécifié par le sélecteur de type d'élément

Donc, dans l'exemple ci-dessus, la priorité de style de #navigator est supérieure à la priorité de . current_block, avec le temps .current_block est le dernier ajout et ne fonctionne pas non plus.

2. Pour les styles spécifiés par le même type de sélecteur, plus tard dans le fichier de feuille de style, plus la priorité est élevée

Remarque, voici le fichier de feuille de style. Plus l'élément est avancé, plus la priorité est élevée, et non l'ordre dans lequel la classe d'élément apparaît. Par exemple, .class2 apparaît après .class1 dans la feuille de style :

.class1 {
    color: black;
}
.class2 {
    color: red;
}
Copier après la connexion

Lorsqu'un élément spécifie une classe, il est spécifié en utilisant class="class2 class1". element Classé derrière class2, mais comme class1 est devant class2 dans le fichier de feuille de style, class2 a toujours une priorité plus élevée à ce moment-là et l'attribut de couleur est rouge, pas noir.

.class1 {
    color: black !important;
}
.class2 {
    color: red;
}
Copier après la connexion
Copier après la connexion

3. Si vous souhaitez que la priorité d'un certain style soit plus élevée, vous pouvez utiliser !important pour spécifier :

.class1 {
    color: black !important;
}
.class2 {
    color: red;
}
Copier après la connexion
Copier après la connexion

À ce moment-là, la classe utilisera le noir. au lieu du rouge.

Il existe deux solutions aux problèmes rencontrés au début :

1 Retirer la bordure du #navigator et la mettre dans une classe .block , et . block est placé avant .current_block :

#navigator {
    height: 100%;
    width: 200;
    position: absolute;
    left: 0;
}
.block {
    border: solid 2 #EEE;
}
.current_block {
    border: solid 2 #AE0;
}
Copier après la connexion

Moren doit spécifier class="block"

2.Utilisez !important :

#navigator {
    height: 100%;
    width: 200;
    position: absolute;
    left: 0;
    border: solid 2 #EEE;
}
.current_block {
    border: solid 2 #AE0 !important;
}
Copier après la connexion

Pour plus d'articles liés à la priorité des styles dans les feuilles de style CSS, veuillez faire attention au site PHP chinois !

Étiquettes associées:
css
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!