使用我的 scss 文件中的 Bootstrap 实用程序 API
Use Bootstrap's utility API from my scss file
Bootstrap 文档解释了如何 enable 负边距 - 但这是针对自定义 Bootstrap.
的情况
我正在从 CDN 使用它,但我仍然想要那些 类(例如 mt-n1
)。我想通过混合(或类似的东西)将它们导入我的 scss。 "Utility API" 表明这是可能的,但我不确定如何从我的 scss 文件中调用它。
我该怎么做?
例如:
// import bootstrap
@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/variables";
@import "~bootstrap/scss/mixins";
@import "~bootstrap/scss/utilities";
// generate negative margin from $utilities:"negative-margin"
// ... <---what goes here?
我尝试了 @include generate-utility("negative-margin")
但失败了。
您必须将 BS5 变量 $enable-negative-margins
设置为 true
并将其插入到 variables.scss
包含之前。
然后,删除所有实用程序,只包含您想要的,参见示例:
// enabling negative margins
$enable-negative-margins: true;
@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/variables";
@import "~bootstrap/scss/mixins";
@import "~bootstrap/scss/utilities";
// remove all utilities and include only what you want
$utilities: (
(
"negative-margin": map-get($utilities, "negative-margin"),
"negative-margin-x": map-get($utilities, "negative-margin-x"),
"negative-margin-y": map-get($utilities, "negative-margin-y"),
"negative-margin-top": map-get($utilities, "negative-margin-top"),
"negative-margin-end": map-get($utilities, "negative-margin-end"),
"negative-margin-bottom": map-get($utilities, "negative-margin-bottom"),
"negative-margin-start": map-get($utilities, "negative-margin-start"),
)
);
// generate utilities
@import "bootstrap/scss/utilities/api";
输出:
@YaroslavTrach 的回答是正确的。
但在他解释如何正确执行之前,我一直在使用肮脏的解决方法。我在这里为那些不使用 scss 或在他们的项目中没有 node-based 构建环境的人添加它。
我将常规 mt-1
等 类 添加到我的自定义 css,并修改了它们的名称和值:
.mt-n1 { margin-top: -0.25rem !important; }
.mt-n2 { margin-top: -0.5rem !important; }
.mt-n3 { margin-top: -1rem !important; }
.mt-n4 { margin-top: -1.5rem !important; }
.mt-n5 { margin-top: -3rem !important; }
但是,如果您的前端确实有 node-based 构建环境,我推荐接受的答案,因为它为每个断点添加了 类。
Bootstrap 文档解释了如何 enable 负边距 - 但这是针对自定义 Bootstrap.
的情况我正在从 CDN 使用它,但我仍然想要那些 类(例如 mt-n1
)。我想通过混合(或类似的东西)将它们导入我的 scss。 "Utility API" 表明这是可能的,但我不确定如何从我的 scss 文件中调用它。
我该怎么做?
例如:
// import bootstrap
@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/variables";
@import "~bootstrap/scss/mixins";
@import "~bootstrap/scss/utilities";
// generate negative margin from $utilities:"negative-margin"
// ... <---what goes here?
我尝试了 @include generate-utility("negative-margin")
但失败了。
您必须将 BS5 变量 $enable-negative-margins
设置为 true
并将其插入到 variables.scss
包含之前。
然后,删除所有实用程序,只包含您想要的,参见示例:
// enabling negative margins
$enable-negative-margins: true;
@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/variables";
@import "~bootstrap/scss/mixins";
@import "~bootstrap/scss/utilities";
// remove all utilities and include only what you want
$utilities: (
(
"negative-margin": map-get($utilities, "negative-margin"),
"negative-margin-x": map-get($utilities, "negative-margin-x"),
"negative-margin-y": map-get($utilities, "negative-margin-y"),
"negative-margin-top": map-get($utilities, "negative-margin-top"),
"negative-margin-end": map-get($utilities, "negative-margin-end"),
"negative-margin-bottom": map-get($utilities, "negative-margin-bottom"),
"negative-margin-start": map-get($utilities, "negative-margin-start"),
)
);
// generate utilities
@import "bootstrap/scss/utilities/api";
输出:
@YaroslavTrach 的回答是正确的。
但在他解释如何正确执行之前,我一直在使用肮脏的解决方法。我在这里为那些不使用 scss 或在他们的项目中没有 node-based 构建环境的人添加它。
我将常规 mt-1
等 类 添加到我的自定义 css,并修改了它们的名称和值:
.mt-n1 { margin-top: -0.25rem !important; }
.mt-n2 { margin-top: -0.5rem !important; }
.mt-n3 { margin-top: -1rem !important; }
.mt-n4 { margin-top: -1.5rem !important; }
.mt-n5 { margin-top: -3rem !important; }
但是,如果您的前端确实有 node-based 构建环境,我推荐接受的答案,因为它为每个断点添加了 类。