zoukankan      html  css  js  c++  java
  • 什么时候该用!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;}
    
    
    
     

    其他补充?

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

  • 相关阅读:
    关于 数据库中 读写 Blob 字段的正确做法。
    C# wave mp3 播放器探寻
    公布Delphi热键注册源码
    Windows 下 Eclipse 集成开发环境演绎
    VS2012 MSHA 文件制做程序
    Erlang 学习笔记 (二) Debugger工具的使用
    Excel里数字列号转换为字符标签列
    串或序列的rotate操作
    64K动画技术剖析:Mod音乐的制作和使用
    64K动画 技术剖析之:Metaball
  • 原文地址:https://www.cnblogs.com/deryck/p/4172100.html
Copyright © 2011-2022 走看看