jonkemp/inline-css

Selector specificity not working for !important rules

Open

#32 创建于 2016年3月14日

在 GitHub 查看
 (8 评论) (0 反应) (0 负责人)JavaScript (80 fork)github user discovery
enhancementhelp wanted

仓库指标

Star
 (440 star)
PR 合并指标
 (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.

贡献者指南