!important的用法及作用(转)

本文深入解析CSS中的!important属性,探讨其在不同浏览器下的表现,包括IE6至IE7+及Firefox、Chrome等现代浏览器。通过具体案例分析!important如何提高样式规则的优先级,并提供兼容性解决方案。

定义及语法

  !important,作用是提高指定样式规则的应用优先权(优先级)。语法格式{ cssRule !important },即写在定义的最后面,例如:box{color:red !important;}。

  在CSS中,通过对某一样式声明! important ,可以更改默认的CSS样式优先级规则,使该条样式属性声明具有最高优先级。

浏览器识别 

    ie7及ie7+,firefox,chrome等浏览器下,已经可以识别 !important属性, 但是IE 6.0IE6及更早浏览器下仍然不能完全识别。important的样式属性和覆盖它的样式属性单独使用时(不在一个{}里),IE 6.0认为! important优先级较高,否则当含! important的样式属性被同一个{}里的样式覆盖时,IE 6.0认为! important较低!

    

案例分析

    IE6及以下浏览器有个比较显式的支持问题存在,!important在同一条规则集里不生效。请看下述代码:

div {!important; color: #000; }
//在上述代码中,IE6及以下浏览器div的文本颜色为#000,!important并没有覆盖后面的规则;ie7、ie7+、及其它浏览器下div的文本颜色为#f00。

   

    IE6及以下浏览器要使!important生效,可用以下代码:

 

div { color: #f00 !important; }
div { color: #000; }
//上述代码中,ie6及其以下浏览器div的文本颜色为#fff,后面的重写的div样式没有起作用,important的样式属性和覆盖它的样式属性单独使用时(不在一个{}里),IE 6.0认为!important优先级较高,
可以识别!important。

 

提高指定样式规则的应用优先权(优先级)

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title>!important</title>

</head>

<style type="text/css">

    #test p{

        color: #000;

    }

    .fontstyle{

        color:#00FF00 !important;

    }

</style>

<body>

    <div id="test">

        <p class="fontstyle">样式带有!important的元素优先级最高</p>

    </div>

</body>

</html>   //.fontstyle样式使用了!important,所以有优先级最高,覆盖掉#test p的color样式

 

 总结实例

*IE都能识别;标准浏览器(如FF)不能识别*

 

!important只有Ie7.0和firefox可以识别,但是Ie6.0不能成功应用.

(一)区别ie与标准浏览器(如FF)的hack为:border:2px solid #f00;*border:1px solid #f00;   //如果*定义的样式放前面会被后面的样式给覆盖掉,因为*不能提高样式的优先级

(二)区别Ie6.0 与Ie7.0、firefox的hack为:border:1px solid #f00!important;border:2px solid #f00;  //!imorpant则可以提高样式的优先级,所以可以放前面定义。

转自:https://www.cnblogs.com/meiwenzx/p/6673302.html

<think>我们刚刚讨论了如何修改el-select的背景色,其中提到使用!important来确保优先级。现在用户询问!important作用。 需要回答!important作用,然后根据问题和回答提出3-5个相关问题。 注意:必须用中文回答,最后必须输出“§§相关问题§§”并紧跟3-5个相关问题。 </think>`!important` 是 CSS 中的一个特殊声明,用于强制提升样式规则的优先级。其核心作用如下: ### 主要作用和特性 1. **最高优先级覆盖** 当多个 CSS 规则冲突时,标记为 `!important` 的样式会覆盖其他所有普通规则: ```css .element { color: red !important; /* 始终生效 */ } #container .element { color: blue; /* 被覆盖 */ } ``` 2. **打破选择器权重规则** CSS 通常按选择器权重(ID > Class > Element)决定优先级,但 `!important` 会跳过这一机制: ```css div { color: green; } /* 权重 0,0,1 */ .text { color: yellow; } /* 权重 0,1,0 */ #title { color: purple; } /* 权重 1,0,0 */ * { color: orange !important; } /* 无视权重强制生效 */ ``` 3. **强制覆盖第三方库样式** 在修改组件库(如 Element UI)时,常用于覆盖其内联样式或深层选择器: ```css .el-input__inner { background: #f0f9eb !important; /* 覆盖组件默认白色背景 */ } ``` ### 使用注意事项 - **谨慎使用**:过度使用会导致样式难以维护和调试 - **无法覆盖的情况**: - 相同规则重复使用 `!important` 时,按正常权重比较 - 浏览器内置样式(如 `<input type="range">`) - **替代方案**: 1. 增加选择器特异性(如添加父选择器) 2. 使用更具体的类名 3. 通过 JavaScript 动态修改样式 > 最佳实践:仅在覆盖第三方库样式且其他方法无效时使用,并添加注释说明原因。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值