twitter bootstrap代码有很多CSS属性,最后有!default
。
E.g。
p {
color: white !default;
}
!default
做了什么?
更新
我不清楚是坏事。我正在使用Bootstrap的SASS部分。
答案 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的页面完全没有关于如何在文档中自定义和编译它。
我不知道为什么少见不这样做。我没有用更少的工作,也不知道它是否有自己的内置变量管理。
答案 1 :(得分:41)
!default
is actually part of Sass,用于给出Sass变量($var
)默认值,这会使它在给定的上下文中无效,甚至在Sass中。 / p>
此外,我无法在the LESS documentation中找到!default
的任何引用,据我所知,这是Sass独有的。你确定你在Bootstrap的源代码中发现了这个,而不是在其他地方吗?因为我老实说不记得在Bootstrap的样式表中看到了Sass / SCSS代码。
对于它的价值,在CSS中以!
开头的唯一有效令牌是!important
,which you may already be aware of。
答案 2 :(得分:1)
您可以在sass-lang网站的doc部分(可变值)中找到以下确切定义和恰当的解释-默认值:
通常,当您为变量分配值时,如果该变量已具有值,则其旧值将被覆盖。但是,如果您正在编写Sass库,则可能希望允许用户在使用它们的变量生成CSS之前对其进行配置。 为了使之成为可能,Sass提供了!default标志。仅在未定义变量或其值为空时,才为变量分配值。否则,将使用现有值。