css – !important规则是否会覆盖媒体查询?

前端之家收集整理的这篇文章主要介绍了css – !important规则是否会覆盖媒体查询?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
因此,举例来说,如果我有一个媒体查询,还有一些关于东西的重要规则的常规CSS,它会受到影响吗?

例如:

a{
    color:#0000FF!important;
}
@media (max-width: 300px){
    a{
        color:#FF0000;
    }
}

解决方法

媒体查询和@media规则不会以任何方式影响!important的行为,因为 they do not have any effect on any part of the cascade.(通过扩展,这也意味着 you cannot use a @media at-rule to “remove” an !important flag,即使您使用更具体的选择器.)

当您的媒体查询匹配时,浏览器会看到:

a{
    color:#0000FF!important;
}
a{
    color:#FF0000;
}

如果没有,它会看到:

a{
    color:#0000FF!important;
}

这两种情况都会导致第一个规则集优先,但不会阻止,例如,带有更具体的选择器的!important声明,或者!重要的内联样式,来覆盖它.

这是另一个更好地说明这一点的例子:

a{
    color:#0000FF!important;
}
@media (max-width: 300px){
    a:link,a:visited{
        color:#FF0000!important;
    }
}

当媒体查询匹配时,浏览器会看到:

a{
    color:#0000FF!important;
}
a:link,a:visited{
    color:#FF0000!important;
}

这导致第二个规则优先,因为它具有更具体的选择器(至少对于a elements that match either pseudo-class).如果它与媒体查询不匹配,那么只有第一个规则会产生任何影响,如上所述.

原文链接:https://www.f2er.com/css/214005.html

猜你在找的CSS相关文章