Les propriétés peuvent être remplacées de différentes manières. En supposant que vous avez
.left { background: blue }
par exemple, l'un des éléments suivants le remplacerait:
a.background-none { background: none; }
body .background-none { background: none; }
.background-none { background: none !important; }
Les deux premiers «gagnent» par spécificité du sélecteur; le troisième l'emporte !important
, un instrument contondant.
Vous pouvez également organiser vos feuilles de style pour que, par exemple, la règle
.background-none { background: none; }
gagne simplement par ordre, soit en étant après une autre règle aussi « puissante ». Mais cela impose des restrictions et vous oblige à être prudent dans toute réorganisation des feuilles de style.
Ce sont tous des exemples de CSS Cascade , un concept crucial mais largement mal compris. Il définit les règles exactes de résolution des conflits entre les règles de feuille de style.
PS J'ai utilisé left
et background-none
comme ils ont été utilisés dans la question. Ce sont des exemples de noms de classes à ne pas utiliser, car ils reflètent un rendu spécifique et non des rôles structurels ou sémantiques.
Jukka K. Korpela
la source
left
etbackground-none
être évité?button
,name-label
etc.). D' autres estiment que CSS devient ingérable si vous utilisez cette approche et vous devez utiliser « utilitaire d'abord » ou « fonctionnelle » où les classes css correspondent à des valeurs de propriété (par exemplemargin-top-4
,width-10
, etc.). Historiquement, l'approche «sémantique» a été dominante alors que récemment l'approche «fonctionnelle» a gagné des adhérents. Essayez les deux sur un projet de taille moyenne, puis décidez vous-même de ce qui est supérieur.Il suffit de l'utiliser
!important
pour remplacerBien que cela soit considéré comme une mauvaise pratique, cela
!important
peut être utile pour les classes d'utilitaires, il vous suffit de l'utiliser de manière responsable, vérifiez ceci: Lors de l'utilisation d'important est le bon choixla source
Comme alternative au
important
mot - clé, vous pouvez rendre le sélecteur plus spécifique, par exemple:(Remarque: pas d'espace entre les noms de classe).
Dans ce cas, la règle s'appliquera lorsque les deux
.left
et.background-none
sont répertoriés dans l'attribut de classe (indépendamment de l'ordre ou de la proximité).la source
Vous devez remplacer en augmentant la spécificité de votre style. Il existe différentes manières d'augmenter la spécificité. L'utilisation de la
!important
spécificité des effets est une mauvaise pratique car elle rompt la cascade naturelle dans votre feuille de style.Le diagramme suivant tiré de css-tricks.com vous aidera à produire la bonne spécificité pour votre élément en fonction d'une structure de points. Quelle que soit la spécificité qui a le plus de points, elle l'emportera. Cela ressemble à un jeu - n'est-ce pas?
Consultez des exemples de calculs ici sur css-tricks.com . Cela vous aidera à très bien comprendre le concept et cela ne prendra que 2 minutes.
Si vous souhaitez ensuite produire et / ou comparer différentes spécificités par vous-même, essayez ce calculateur de spécificité: https://specificity.keegan.st/ ou vous pouvez simplement utiliser du papier / crayon traditionnel.
Pour en savoir plus, essayez MDN Web Docs .
Tout le meilleur pour ne pas utiliser
!important
.la source
Si vous répertoriez la
bakground-none
classe après les autres classes, ses propriétés remplaceront celles déjà définies. Il n'est pas nécessaire d'utiliser!important
ici.Par exemple:
et
Le lien n'aura pas de fond rouge. Veuillez noter que cela remplace uniquement les propriétés qui ont un sélecteur qui est moins ou également spécifique.
la source
LIFO est la façon dont le navigateur analyse les propriétés CSS. Si vous utilisez Sass, déclarez une variable appelée
utilisez-le au lieu d'attribuer directement des valeurs comme le rouge ou le bleu. Lorsque vous souhaitez remplacer, réaffectez simplement la valeur à
puis
il devrait passer en douceur. L'utilisation de "! Important" n'est pas toujours le bon choix. C'est juste un correctif
la source