【问题标题】:Changes made to custom.scss file in bootstrap not working在引导程序中对 custom.scss 文件所做的更改不起作用
【发布时间】:2021-02-13 18:35:10
【问题描述】:

我在我的 laravel 服务器上的引导节点模块中的 scss 文件位置旁边创建了一个 custom.scss 文件,文件的内容是

/* custom.scss */    

/* import the necessary Bootstrap files */
@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/_variables";
//@import "~bootstrap/scss/mixins/_breakpoints";

/* make changes to the !default Bootstrap variables */    
$grid-breakpoints: (
  xs: 0,
  sm: 600px,
  md: 800px,
  lg: 1000px,
  xl: 1280px
);

/* finally, import Bootstrap to set the changes! */
@import "~bootstrap";

我试图实现的是更改引导程序 4 断点,但是仍然从 _root.scss 加载断点,而我从 npm run dev 生成的 app.css 文件显示为 firefox 可以看到的文件但是所有的选项都是灰色的,并且有一条线穿过它们。 有什么办法可以改变它以使用我定义的网格断点。 谢谢

【问题讨论】:

  • 放弃你的 custom.scss 并将你的更改/修改移动到 Laravel 的 app.scss?! “在引导节点模块中的 scss 文件位置旁边”我不会在这些“供应商”文件夹中添加/更改任何内容,如果引导程序有更新,您的文件可能会被删除/删除
  • 在 app.css 之后是否包含另一个对 bootstrap.css 的副本/实例/引用?
  • 我看到的所有更改引导断点的教程都在引导节点模块的 custom.scss 文件中,我如何让它在我的 app.scss 文件中工作,因为我已经尝试过了。谢谢
  • @Zim 是的,我已经尝试过交换订单,它的引导 css 文件我还包含了 js 文件
  • @Zim yh 我刚刚发现,js 文件是否也包含在内,如果包含,它们包含在哪里,以防我稍后需要编辑它们,因为直到现在我认为我必须导入它们.谢谢

标签: css laravel bootstrap-4 sass laravel-mix


【解决方案1】:

我觉得这个问题很有趣,因为我没有意识到你的方法可能真的有效。我通常如何处理引导变量覆盖是这样的......

// make font sizes responsive
$enable-responsive-font-sizes: true;

// import bootstrap initial sass vendors
@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/variables";
@import "~bootstrap/scss/mixins";

// remove colors from bs color var maps
$grays: map-remove($grays, "100","200","300","400","500","600","700","800","900");
$theme-colors: map-remove($theme-colors, "primary","secondary","success","danger","warning","info","light","dark");
$colors: map-remove($colors, "blue","indigo","purple","pink","red","orange","yellow","green","teal","cyan","white","gray","gray-dark");

// @debug $colors;

// get my var overrides sass
@import "./vars";

// finish loading rest of bs sass lib with my var and color map changes applied
@import "~bootstrap/scss/root";
@import "~bootstrap/scss/reboot";
@import "~bootstrap/scss/type";
@import "~bootstrap/scss/images";
@import "~bootstrap/scss/code";
@import "~bootstrap/scss/grid";
@import "~bootstrap/scss/tables";
@import "~bootstrap/scss/forms";
@import "~bootstrap/scss/buttons";
@import "~bootstrap/scss/transitions";
@import "~bootstrap/scss/dropdown";
@import "~bootstrap/scss/button-group";
@import "~bootstrap/scss/input-group";
@import "~bootstrap/scss/custom-forms";
@import "~bootstrap/scss/nav";
@import "~bootstrap/scss/navbar";
//@import "~bootstrap/scss/card";
@import "~bootstrap/scss/breadcrumb";
@import "~bootstrap/scss/pagination";
@import "~bootstrap/scss/badge";
//@import "~bootstrap/scss/jumbotron";
@import "~bootstrap/scss/alert";
@import "~bootstrap/scss/progress";
@import "~bootstrap/scss/media";
//@import "~bootstrap/scss/list-group";
//@import "~bootstrap/scss/close";
@import "~bootstrap/scss/toasts";
@import "~bootstrap/scss/modal";
@import "~bootstrap/scss/tooltip";
//@import "~bootstrap/scss/popover";
//@import "~bootstrap/scss/carousel";
//@import "~bootstrap/scss/spinners";
@import "~bootstrap/scss/utilities";
//@import "~bootstrap/scss/print";

./vars 中覆盖 sass 变量看起来像这样......

/* grid breakpoints
-------------------------------------------------- */

$grid-breakpoints: (
  // Extra small screen / phone
  xs: 0,
  // Extra small screen / phone
  is: 350px,
  // Small screen / phone
  sm: 576px,
  // Medium screen / tablet
  md: 768px,
  // Large screen / desktop
  lg: 992px,
  // Extra large screen / wide desktop
  xl: 1200px
);

我一直认为 @import "~bootstrap"; 在 sass 变量覆盖之后只会重新导入 bootstrap/scss/variables 再次将我的所有自定义变量覆盖重置为默认的 bootstrap/scss/variables

我会研究你的方法,看看它是否真的有效,但是如果你被卡住了,我发布的方法会有效。

【讨论】:

    猜你喜欢
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 2023-03-28
    • 2021-12-11
    • 2015-03-21
    • 1970-01-01
    相关资源
    最近更新 更多