Css 为什么我要用!在这种情况下重要吗?

Css 为什么我要用!在这种情况下重要吗?,css,less,Css,Less,我正在学习CSS,我得到了我想要的结果,但前提是我使用!重要的规格。我不明白为什么我不能重写继承一个类并重写一个属性的属性 form button.minor-action, #profile-left a.action, .minor-action { display: inline-block; background: @lightBlue; color: white; padding: 0 1.2em; border-radius: 4px; -webkit-bor

我正在学习CSS,我得到了我想要的结果,但前提是我使用
!重要的规格。我不明白为什么我不能重写继承一个类并重写一个属性的属性

form button.minor-action,
#profile-left a.action,
.minor-action {
  display: inline-block;
  background: @lightBlue;
  color: white;
  padding: 0 1.2em;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  text-decoration: none;
  text-align: center;
  font-weight: bold;
  border: none;
  height: 25px;
  margin-top:1.0em;
  line-height:25px;
  white-space: nowrap;
  &:visited {
    color: white;
  }
  &:hover, &:active, &:focus {
    background-color: darken(@lightBlue, 10%);
    text-decoration: none;
  }

  &.call-to-action {
    background-color: @pink;
    &:hover, &:active, &:focus {
      background-color: darken(@pink, 10%);
      text-decoration: none;
    }
  }
}

.extra-questions {
  margin-top: 0em !important;

}
我想如果我用上面的样式做一个按钮:

{%trans“Lägg直到纽约”%}


这样我就不必使用
!重要的语句和重写在没有它的情况下可以工作,但它不能。我错过了什么?你能帮我理解为什么没有
它就不能工作吗!重要的
语句,或者告诉我一种不使用
的方法!重要的

因为它已经在上面的类中设置了
。次要操作
,如果设置了它,它不会覆盖,除非您使用
!重要信息

Its没有被覆盖并不完全正确,因为它在上面的类中设置,在这种情况下,它不是由于LESS的顺序造成的-它没有被覆盖,因为您以错误的顺序列出了您的类-而不是

额外问题小动作

你需要做什么

次要行动额外问题

表示类时,如果它们共享相同属性设置的值,则应用的最后一个类的值将优先

或者,您可以在
小动作
中嵌套
额外问题
,并以
&
作为前缀,为您的课程增加更多的特殊性。这意味着HTML中类的顺序不重要,组合才重要。输出CSS将是:

。小动作。额外问题


另外,我相信您也知道,如果您这样做,应该避免使用

覆盖将起作用

.minor-action{
    margin-top: 0em;
}
您没有将任何样式应用于
。其他问题
,而是应用于
。次要操作
。您应用于同一个元素是正确的。但是cascade就是这样工作的

这将有助于:


这是:

您的示例在没有!重要-

它不起作用!没有那个案子很重要- 1.规则是遵循类-
。额外问题{}。次要操作{}

2.该规则的权重更高-
按钮。次要操作{}
它的权重大于
。次要操作{}

css规则的应用取决于您调用它们的顺序,并且它们越具体

如果有两条规则定义了
页边距顶部
,则浏览器必须决定应用哪一条规则。为此,它从上到下读取css文件,并根据以下内容计算每个规则的优先级

  • 优先级1:#id(id是唯一的选择器,因此非常重要)
  • 优先级2:.类(然后是它们不如ID重要但仍然重要的类)
  • 优先级3:元素(最后是大多数情况下被覆盖的通用样式,这是您的默认样式)
每次添加嵌套选择器时,它也会添加到优先级,因此:

body.class
更重要,
body.id
body.class
更重要

最后,如果规则的优先级相同,则最后一个规则为apply


设置
!重要信息
代码中的标志是人为提高特定规则优先级的一种方法。但是如果您最终使用与
相同的规则!重要信息
然后将应用上面的优先级规则。

您的第一个选择器更为具体,它适用于作为表单子级的元素,并且它只会覆盖最通用的(第二个)选择器,该选择器适用于任何.yourclass,而不管它在文档层次结构中的位置如何。您可以通过选择form.yourclass来删除重要的内容。

MDN感到惊讶!重要的链接,因为他们没有指出!重要
覆盖给定的
内联样式
,这是
重要的
事情。此时您需要使用
!重要信息
。说这是不好的做法,“将应用更具体的声明”只是CSS的正常行为……谢谢你的回答。但是由于某种原因,没有
,我无法做到这一点!重要的即使我按照你说的顺序列出了类。