Jan*_*ndu 6 compiler-errors sass bootstrap-4
在自定义覆盖 sass 文件中覆盖 Bootstrap 4.3.1 变量时,我收到“不兼容的单位:‘rem’和‘px’”。
我尝试按照 Bootstrap 4 文档中的说明将自定义 sass 文件上的以下路径放置在文件顶部和文件最后一行。
@import "node_modules/bootstrap/scss/functions";
@import "node_modules/bootstrap/scss/variables";
@import "node_modules/bootstrap/scss/mixins";
Run Code Online (Sandbox Code Playgroud)
终端错误
ERROR in ./src/scss/main.scss (./node_modules/raw-loader!./node_modules/postcss-loader/lib??embedded!./node_modules/sass-loader/lib/loader.js??ref--14-3!./src/scss/main.scss)
Module build failed:
$custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;
^
Incompatible units: 'rem' and 'px'.
Run Code Online (Sandbox Code Playgroud)
<br>首先从 SCSS 文件中删除,这是calc()功能问题而不是px or rem.
calc()function是CSS内置的函数,所以每次calc()在SCSS中调用时,都需要使用#{}技巧来使用变量
height: calc(100% - #{$body_padding})
Run Code Online (Sandbox Code Playgroud)
现在我给你举一个例子
$custom-select-padding-y = 50px;
$custom-select-feedback-icon-padding-right: calc((1em + #{2 * 50px}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;
Run Code Online (Sandbox Code Playgroud)
2 * 50px = 100px依此类推,它无法计算1em + {random px}所以,它的返回未定义并且编译器给出错误。
calc()计算 2 * 5px = 10px or 2 * 1rem = 32px.
calc()无法计算2rem + 1em等1rem + 1px