jonkemp/inline-css

Selector specificity not working for !important rules

开放

#32 创建于 2016年3月14日

 (8 条评论) (0 个反应) (0 位负责人)JavaScript (78 个派生)github user discovery
enhancementhelp wanted

仓库指标

星标
 (438 个星标)
PR 合并指标
 (30 天内没有已合并 PR)

描述

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.

贡献者指南