先看W3C对其说明
提升指定样式规则的应用优先权。
IE6及以下浏览器有个比较显式的支持问题存在,!important并不覆盖掉在同一条样式的后面的规则。
IE6是不识别!important这条语法的,所以,在IE6中,与其在一行的样式将被忽略,IE7+版本是支持的。
所以一个用法出来了:
在IE6及向上版本,提供两种不同的样式。而!important作用就是在这些相同样式中,提高高版本样式的优先性
众所周知,css样式中,对于同一种属性是自上而下应用,即后者会覆盖前者。
示例:
p {
color = blue; //将被后者覆盖
color = red; //显示红色
}
然而,若是加上了 !important ,情况就不一样了(仅区别IE6与向上版本)。
p {
color = blue !important; //IE7+版本显示蓝色
color = red; //IE6照旧显示红色
}
另外,因为ID的优先性是高于class的,所以!important的另一个用法,就是强制重定义,另起炉灶,实现自己的样式,而不实现父id的样式。
总结:
- 提高优先性,区别对待IE6和IE7+版本浏览器。
- 强制重定义,不必遵循父id的原有样式。