什么!在css属性值中默认是什么意思?

时间:2012-05-17 20:35:27

标签: css twitter-bootstrap sass

twitter bootstrap代码有很多CSS属性,最后有!default

E.g。

p {
  color: white !default;
}

!default做了什么?

更新

我不清楚是坏事。我正在使用Bootstrap的SASS部分。

3 个答案:

答案 0 :(得分:57)

!默认在Bootstrap Sass中经常使用。它类似于反向!重要。所有Bootstraps变量都使用!default设置,以允许开发人员进一步自定义引导程序。使用!默认sass只会定义一个尚未设置的变量。

这允许更大的灵活性。

//Example1 Dress color = red
$auroras-dress-color: blue;
$auroras-dress-color: red;

//Example2 Dress color = red
$auroras-dress-color: blue !default;
$auroras-dress-color: red;

//Example3 Dress color = blue
$auroras-dress-color: blue;
$auroras-dress-color: red !default;

那为什么这很重要? Bootstrap是一个包。大多数人都没有编辑Bootstrap源代码。永远不要更新BOOTSTRAP来源。要自定义引导程序,您将添加自己的变量文件并使用引导程序代码进行编译,但从不接触本机引导程序包。 Bootstrap sass的页面完全没有关于如何在文档中自定义和编译它。

我不知道为什么少见不这样做。我没有用更少的工作,也不知道它是否有自己的内置变量管理。

示例小提琴 https://jsfiddle.net/siggysid/344dnnwz/

答案 1 :(得分:41)

据我所见,Twitter Bootstrap使用LESS。另一方面,!default is actually part of Sass,用于给出Sass变量($var)默认值,这会使它在给定的上下文中无效,甚至在Sass中。 / p>

此外,我无法在the LESS documentation中找到!default的任何引用,据我所知,这是Sass独有的。你确定你在Bootstrap的源代码中发现了这个,而不是在其他地方吗?因为我老实说不记得在Bootstrap的样式表中看到了Sass / SCSS代码。

对于它的价值,在CSS中以!开头的唯一有效令牌是!importantwhich you may already be aware of

答案 2 :(得分:1)

您可以在sass-lang网站的doc部分(可变值)中找到以下确切定义和恰当的解释-默认值:

通常,当您为变量分配值时,如果该变量已具有值,则其旧值将被覆盖。但是,如果您正在编写Sass库,则可能希望允许用户在使用它们的变量生成CSS之前对其进行配置。 为了使之成为可能,Sass提供了!default标志。仅在未定义变量或其值为空时,才为变量分配值。否则,将使用现有值。