首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引导4 SCSS覆盖无法工作的

引导4 SCSS覆盖无法工作的
EN

Stack Overflow用户
提问于 2017-08-12 14:35:42
回答 1查看 7.9K关注 0票数 5

这里引用了Bootstrap文档中的一句话:

Bootstrap 4中的每个Sass变量都包含!默认标志,这意味着您可以在自己的Sass 中覆盖该默认值,即使在定义了原始变量的之后也是如此。

下面是我的theme.scss文件内容:

代码语言:javascript
复制
// Bootstrap original
@import "bootstrap/scss/bootstrap";

// Variables overrides
@import "custom-variables";

自定义custom-variables.scss文件的内容(仅用于测试):

代码语言:javascript
复制
$body-color: #555;
$font-family-base: serif;

所有的编译都是OK的,但是没有改变样式(例如,体色和基本字体系列与原始引导文件中的字体相同)。怎么来的?

EN

回答 1

Stack Overflow用户

发布于 2017-08-12 14:52:28

For v4 alpha。的问题是,在将变量应用于所有引导样式之前,您需要重写它们(目前您是在之后这样做)。在bootstrap/scss/bootstrap中,每个scss文件都会被导入,从它们的variables文件开始。在此之后,它们为您提供了一种钩子,可以在变量用于表、按钮等之前覆盖它们。

引导4附带了一个_custom.scss文件,以便轻松重写/scss/_variables.scss中的默认变量。复制并粘贴相关行到_custom.scss文件中,修改值,并重新编译Sass以更改默认值。确保从重写值中移除!默认标志。[来源]

_custom.scss文件应该位于bootstrap/scss/目录中。

注意:这是不推荐的,因为v4测试版。

For v4 beta和更高版本。 变量默认值基本上是相反的。带有!default标志的变量将默认为此变量以前设置的值(如果有可用的话)。由于所有引导变量都有此标志,所以可以在custom-variables.scss之前导入bootstrap/scss/bootstrap

代码语言:javascript
复制
$var: 2px; /* set in custom-variables.scss */
$var: 1px !default; /* set in the bootstrap _variables.scss */

.element {
  width: $var;
}

编译成

代码语言:javascript
复制
.element {
  width: 2px;
}

在重写这些变量时使用引导变量的一种方法是两次导入_variables.scss文件;一次是在定义重写之前作为单个文件导入,一次是作为整个引导过程的一部分:

代码语言:javascript
复制
// @import bootstrap _variables.scss file
$var: 1px !default;
$var2: 4px !default;

// your custom-variables.scss
$var: 2px + $var2;

// @import bootstrap
$var: 1px !default;
$var2: 4px !default;

.element {
  width: $var;
}

编译成

代码语言:javascript
复制
.element {
  width: 6px;
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45651432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档