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

Cof*_*ite 69 css sass twitter-bootstrap

twitter引导代码最后有很多CSS属性!default.

例如

p {
  color: white !default;
}
Run Code Online (Sandbox Code Playgroud)

怎么!default办?

UPDATE

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

小智 68

!默认在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;
Run Code Online (Sandbox Code Playgroud)

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

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

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


Bol*_*ock 45

就我所见,Twitter Bootstrap使用LESS.另一方面,!default它实际上是Sass的一部分,用于给出Sass变量($var)默认值,这会使它在给定的上下文中无效,即使在Sass中也是如此.

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

对于它的价值,!在CSS 中开始的唯一有效令牌是!important,您可能已经知道.


Asp*_*ian 8

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

\n
\n

通常,当您为变量赋值时,如果该变量已经有值,则其旧值将被覆盖。但是,如果您\xe2\x80\x99 正在编写 Sass 库,则可能希望允许用户在使用库\xe2\x80\x99s 变量生成 CSS 之前配置它们。\n为了实现这一点,Sass 提供了 !默认标志。仅当该变量未定义\xe2\x80\x99t 或其值为 时,才会为该变量null赋值否则,将使用现有值

\n
\n