【问题标题】:Bootstrap 4 SCSS overrides not workingBootstrap 4 SCSS覆盖不起作用
【发布时间】:2018-01-20 22:18:31
【问题描述】:

所以这是来自 Bootstrap 文档的引用:

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

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

// Bootstrap original
@import "bootstrap/scss/bootstrap";

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

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

$body-color: #555;
$font-family-base: serif;

一切都可以编译,但是样式没有变化(例如,主体颜色和基本字体系列与原始 Bootstrap 文件中的相同。怎么来?

【问题讨论】:

标签: html css twitter-bootstrap sass bootstrap-4


【解决方案1】:

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

Bootstrap 4 附带一个 _custom.scss 文件,用于轻松覆盖 /scss/_variables.scss 中的默认变量。将相关行从那里复制并粘贴到 _custom.scss 文件中,修改值,然后重新编译您的 Sass 以更改我们的默认值。请务必从覆盖值中删除 !default 标志。 [Source]

_custom.scss 文件应位于您的bootstrap/scss/ 目录内。
注意:自 v4 beta 起已弃用。


对于 v4 beta 及更高版本。 Variable defaults 基本上可以反过来工作。带有!default 标志的变量将默认为该变量先前设置的值(如果有的话)。由于所有引导变量都有此标志,您可以在 bootstrap/scss/bootstrap 之前导入您的 custom-variables.scss;

$var: 2px; /* set in custom-variables.scss */
$var: 1px !default; /* set in the bootstrap _variables.scss */

.element {
  width: $var;
}

编译成

.element {
  width: 2px;
}

在覆盖引导变量时使用引导变量的一种方法是导入_variables.scss 文件两次;在定义覆盖之前作为单个文件,然后作为整个引导程序的一部分:

// @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;
}

编译成

.element {
  width: 6px;
}

【讨论】:

  • _custom.scss 似乎在 v4 beta 中被贬低了。我必须在variables.scss 之后在bootstrap.scss 中导入我的cutom-variables.scss。我希望避免修改原始 Bootstrap 文件,但这似乎是唯一的解决方案。
  • 第二个选项也应该可以工作,但这会阻止我使用引导变量来定义其他变量(例如$navbar-default-color: $text-muted)。
  • 有效点。我建议您在 GitHub 上创建一个问题,因为我在那里找不到任何考虑到此要求的内容。
  • 我面临着完全相同的问题。这是否已经发送给 Bootstrap 作者?
  • @JasonK 我认为解决这个问题的最简单(也许是唯一的方法)是在覆盖之前导入_variables.scss(然后作为引导程序的一部分);例如,请参阅我编辑的答案。这基本上让您回到了 alpha 中使用的概念,但您不必修改 bootstrap 文件夹中的文件。
猜你喜欢
  • 2019-03-27
  • 2019-01-20
  • 1970-01-01
  • 1970-01-01
  • 2020-05-13
  • 1970-01-01
  • 2016-03-25
  • 2019-07-07
  • 1970-01-01
相关资源
最近更新 更多