jonkemp/inline-css

Selector specificity not working for !important rules

Aperta

#32 aperta il 14 mar 2016

 (8 commenti) (0 reazioni) (0 assegnatari)JavaScript (78 fork)github user discovery
enhancementhelp wanted

Metriche repository

Star
 (438 stelle)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

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.

Guida contributor