jonkemp/inline-css

Selector specificity not working for !important rules

Ouverte

#32 ouverte le 14 mars 2016

 (8 commentaires) (0 réaction) (0 personne assignée)JavaScript (78 forks)github user discovery
enhancementhelp wanted

Métriques du dépôt

Stars
 (438 étoiles)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

When two selectors match the same element, and both have !important, then the selector specificity is ignored and the last rule wins:

inlineCss('<style>p a {color: red!important} a{color: black!important}</style>  <p><a>test', {url: '/'}).then(s=>console.log(s))
// '<p><a style="color: black;">test</a></p>'
inlineCss('<style>a{color: black!important} p a {color: red!important}</style>  <p><a>test', {url: '/'}).then(s=>console.log(s))
// '<p><a style="color: red;">test</a></p>'

However for the browsers it’s different. No matter which rule goes first, if both have !important in them, the more specific wins.

Guide contributeur