什么时候该用!important?

在CSS裡面使用!important通常代表你這個人要麼懶惰,要麼自私或者是过于自信。

首先让那些不知道的人看一下,!important是这么一回事:

1 CSS
2 p {
3     color: red !important;}#thing {
4     color: green;}
5 HTML
6 <p id="thing">Will be RED.</p>

这个段落将会是red的,尽管ID选择器的优先级更高。但是!important规则会覆盖掉它原本的样子

如果CSS滥用!important的话将会变成非常难维护。造成这种不幸的一般都是这种步骤:

  1. 为啥我的CSS文件不起作用啦!?
  2. (接着就用绝招:!important)
  3. OK,可以啦!

然后下一个同事就会来加上一些新的样式,他会试着去修改一些CSS样式,但是他每没有收到预想中的效果。最终他发现了是 !important搞的鬼。然后他就会去删掉这些!important,接着再加上他自己的样式使得效果体现出来。但是,祸不单行,按下葫芦浮起瓢,这边搞定了,那边会因为这次修改而样式错了,就这样陷入了恶性循环。

比较适合使用的情况: 实用的工具类

那么什么时候使用 !important比较好呢?在我看来,在有实际用途的类里使用是比较合适的。

比如有一批按钮。现在假设下你的网页上有一个.button 类。不论放在什么元素上面,你都想元素看起来像一个按钮:特定的字体,圆角,特定的背景颜色与边框。所以,你这么写:

CSS
1 .button {
2    background: red;
3    color: white;
4    padding: 3px;
5    border-radius: 5px;
6    border: 1px solid black;}
7 HTML
8 <a href="#" class="button">Do Thing</a>

 

如果元素上面有一个更高级的选择器,有可能会出现下例的问题:

HTML
1 <section id="content">
2    <p>  text text blah <a href="#" class="button">Do Thing</a>  </p></section>
3 #content a {
4    border-bottom: 1px dotted blue;
5 }

 

现在可以看到按钮会变成虚线的边框,这个不是你所希望的。可以在看一下效果fiddle.

我不认为这种是CSS本身的问题。但这里我们把一个按钮的样子弄糟糕了。

把你的按钮类变得不容易被覆盖,使用!important是一个好方法。

CSS
1 .button {
2    background: red            !important;
3    color: white               !important;
4    padding: 3px               !important;
5    border-radius: 5px         !important;
6    border: 1px solid black    !important;
7
8    /* For good measure */
9    text-decoration: none      !important;}

 

其他补充?

如果你有其他情况觉得比较适合使用,我很乐意听你讲一下:-)

时间: 2024-10-29 17:02:45

什么时候该用!important?的相关文章

CSS中!important的使用

本篇文章使用最新的IE10以及firefox与chrome测试(截止2013年5月27日22:23:22) CSS的原理: 我们知道,CSS写在不同的地方有不同的优先级, .css文件中的定义 < 元素style中的属性,但是如果使用!important,事情就会变得不一样. 首先,先看下面一段代码: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content

CSS中!important的用法

!important是CSS1就定义的语法,是用于提高指定样式规则的应用优先级.IE一直都不支持这个语法,而其他的浏览器都支持.因此,就可以利用它来分别给火狐浏览器和IE浏览器样式不同的定义. 举例: <html> <body> <span id="main">测试</span> </body> </html> 样式表: #main { width:100px!important; width:10px; bord

转:css中!important的作用

转:http://www.cnblogs.com/guoguo-15/archive/2011/08/24/2151859.html {*rule !important}这个css规则当今在网页制作的时候的普及已经非常流行了,以前我对它的理解就停留在‘浏览器是否识别阶段’ 而没有真正去研究过,可是现在发生了变化.众所周知,!important这个规则对Ie6.0,Ie7.0和Firefox能写hack,现在就来讲解 这是什么原理: *对于Ie系列浏览器都能够识别, firefox 浏览器则不能识

ACdream 1415 Important Roads

Important Roads Special JudgeTime Limit: 20000/10000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others) Problem Description The city where Georgie lives has n junctions some of which are connected by bidirectional roads.      Every day Georgie

技术人生:special considerations that are very important

For the most part, a lot of what we know about software development can be applied to different environments and technologies. But, there are always special considerations that are very important.

important的妙用解决firefox和ie的css兼容问题

对于某些内容可变的层(比如用户评论),我们希望它有个最小的高度 (比如30px),这样的话,即使内容只有一行字,也不会太难看:同时又希望在内容比较多的时候,层的高度能自动撑开,也就是要求height: auto.这时候就可以设置css的min-height属性.min-height在Firefox里有效,但IE无法识别. 可以使用下面这个解决方案: 复制代码 代码如下: .div_class{ min-height:30px; height:auto !important; height:30p

UVA - 11927 Games Are Important (SG)

Description  Games Are Important  One of the primary hobbies (and research topics!) among Computing Science students at the University of Alberta is, of course, the playing of games. People here like playing games very much, but the problem is that t

Lesson 61-62 Are Relatives Important to You?

1 Mid-Autumn Festival eg. The Dragon Boat Festival is one of three major Chinese holidays,along with the Spring and Moon Festivals.端午节是三个中国主要节日之一,另两个是春节和中秋节. 2 clan家族,集团 eg. She ranks as my junior in the clan.她的辈分比我小. 3 disinherit剥夺继承权 brother-german

Windows性能优化关键点-Windows Performance tuning important settings

最近重装了windows8系统,发现性能差得很,原不如官方说的比win7好很多的说法.经过几个关键配置的调整,终于找回电脑原来的风采. 下面总结一下,希望对大家有帮助: 1. 检查windows服务,把不需要的服务关闭 其中最容易被遗忘的时windows media network service,不需要网络多媒体共享的朋友最好关掉它,它扫描媒体可是很迟硬盘的. 2. 看一下电源选项,是否已经配置成性能使用性能最优选项(本人使用的时英文版WINDOWS8,WINDOWS7的配置类似,到更改计划里

CSS中的!important属性用法

关于CSS的运用技巧有很多, 今天主要探讨一下CSS中 !important 这个属性的用法.在CSS的使用中,遇到最多的问题就是不同浏览器之间的兼容问题. 由于IE并不严格执行W3C标准, 而又几乎垄断了浏览器市场. 所以作为一名合格的网站制作人员, 必须要针对不同的浏览器进行微调. 实现不同浏览器之间兼容的方法有很多, 比如利用JS探测用户的浏览器类型,从而调用不同的样式表. 或者就是利用!important 属性来实现微调的效果. 下面是具体的例子. 下面是一段普通的 DIV 代码: 下面