【问题标题】:overriding default $border-radius-lg variable in theming bootstrap 4在主题引导程序 4 中覆盖默认的 $border-radius-lg 变量
【发布时间】:2019-05-29 06:22:46
【问题描述】:

我正在为我的项目使用 bootstrap 4 框架。

我通过覆盖核心变量来进行主题化。如果我调整我的网格变量,它们会起作用,但如果我尝试更新 $border-radius-lg 变量,则不会发生任何变化,并且仍在使用默认的 $border-radius-lg 大小。

这是放置自定义变量的地方...

@import "scss/functions";
@import "scss/variables";

// my custom variables
@import "myvars";

@import "scss/mixins";
@import "scss/root";
@import "scss/reboot";
@import "scss/type";
@import "scss/images";
@import "scss/code";
@import "scss/grid";
@import "scss/tables";
@import "scss/forms";
@import "scss/buttons";
@import "scss/transitions";
@import "scss/dropdown";
@import "scss/button-group";
@import "scss/input-group";
@import "scss/custom-forms";
@import "scss/nav";
@import "scss/navbar";
@import "scss/card";
@import "scss/breadcrumb";
@import "scss/pagination";
@import "scss/badge";
@import "scss/jumbotron";
@import "scss/alert";
@import "scss/progress";
@import "scss/media";
@import "scss/list-group";
@import "scss/close";
@import "scss/toasts";
@import "scss/modal";
@import "scss/tooltip";
@import "scss/popover";
@import "scss/carousel";
@import "scss/spinners";
@import "scss/utilities";
@import "scss/print";

这些是我在myvars 文件中的自定义变量

/* my custom bootstrap 4 vars
-------------------------------------------------- */

// these work fine when I make changes to test
$grid-columns:                12;
$grid-gutter-width:           30px;

// this doesn't change any of my large input radius
$border-radius-lg:            1rem;

我检查了引导程序 variables 文件,$border-radius-lg$input-border-radius-lg 的父变量,但我的 css 编译后半径仍然是默认大小 .3rem

有谁知道如何让这个工作?

这是默认变量的屏幕截图...

【问题讨论】:

  • 如果我没记错的话,在 sass 覆盖一个变量,默认必须有!default 标志
  • $grid-columns 默认为12 !default,但您不需要声明!default 来覆盖var。我目前可以在不使用!default 的情况下更改$grid-columns。我已经尝试!default 到我的自定义$border-radius-lg 并且仍然没有改变。没有意义。
  • 不,我的意思是引导变量必须有 !default 被覆盖,最后它不会被改变
  • $border-radius-lg in bootstraps variables.scss 设置为 !default 那么为什么我可以覆盖它们?

标签: sass bootstrap-4


【解决方案1】:

您应该在要覆盖的更改之后导入variables。此外,由于您直接设置变量值(而不是从任何现有变量分配自定义项),因此您无需先导入函数和变量。

// my custom variables
@import "myvars";

@import "scss/functions";
@import "scss/variables";
@import "scss/mixins";
@import "scss/root";
@import "scss/reboot";
@import "scss/type";
@import "scss/images";
@import "scss/code";
@import "scss/grid";
@import "scss/tables";
@import "scss/forms";
@import "scss/buttons";
@import "scss/transitions";
@import "scss/dropdown";
@import "scss/button-group";
@import "scss/input-group";
@import "scss/custom-forms";
@import "scss/nav";
@import "scss/navbar";
@import "scss/card";
@import "scss/breadcrumb";
@import "scss/pagination";
@import "scss/badge";
@import "scss/jumbotron";
@import "scss/alert";
@import "scss/progress";
@import "scss/media";
@import "scss/list-group";
@import "scss/close";
@import "scss/toasts";
@import "scss/modal";
@import "scss/tooltip";
@import "scss/popover";
@import "scss/carousel";
@import "scss/spinners";
@import "scss/utilities";
@import "scss/print";

演示:https://www.codeply.com/go/2hEAbv49oQ


相关:How to extend/modify (customize) Bootstrap 4 with SASS

【讨论】:

  • 完美的男人.. 我很高兴我认为我的变量需要在变量文件之后。默认的工作方式非常有意义。喜欢 codeply 的例子,以前没见过。试图在 sassmeister 中制作类似的演示,但它没有 bs4 框架。
猜你喜欢
  • 1970-01-01
  • 2019-05-03
  • 1970-01-01
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
  • 2017-06-19
相关资源
最近更新 更多