【问题标题】:Defining CSS properties twice两次定义 CSS 属性
【发布时间】:2017-04-04 08:44:17
【问题描述】:

general.css

#feedback_bar
{
  /*props*/
}

另一个.css

#feedback_bar
{
  /*props*/
}

这是允许的吗?两者都会继承吗?

【问题讨论】:

    标签: css


    【解决方案1】:

    最后定义的属性将覆盖之前定义的属性。除非你在前面定义的 CSS 部分使用!important

    .thing {
        padding: 10px;
    }
    
    .thing {
        padding: 12px;
    }
    

    .thing 将拥有padding: 12px;

    .thing {
        padding: 15px !important;
    }
    
    .thing {
        padding: 123px;
    }
    

    .thing 将有 padding: 15px;

    这是允许的,为了更严格地回答您的问题,两者都确实会被继承,如下例所示:

    .thing {
        padding: 10px;
    }
    
    .thing {
        background: red;
    }
    

    .thing 将同时拥有 padding: 10px;background: red;

    另外,请花点时间阅读有关此答案的一些 cmets,因为它们提出了值得进一步阅读的要点。

    【讨论】:

    • 我认为值得一提的是,!important 旨在成为一种诊断工具——而不是草率 CSS 的解决方案。
    • @Shango - 我也经常使用!important 来处理 JS (out-of-my-control) 修改内联样式。
    【解决方案2】:

    最后加载的会覆盖之前的声明。至于被允许,css 不能向您抛出错误:P。不过可能不是一个好主意。

    【讨论】:

    • 确实,但我喜欢不呈现样式或标记错误的页面的想法。
    【解决方案3】:

    这是允许的,但如果有重复的属性,将使用最后一个。

    【讨论】:

      猜你喜欢
      • 2020-09-25
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 2018-04-23
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 2019-04-12
      相关资源
      最近更新 更多