我正在尝试在 CSS / scss 中构建我自己的微型可扩展网格。到目前为止,我发现了这个决定:
:root {
--page-width: 1170px;
--gutter: 15px;
--columns: 12;
}
.wrapper {
max-width: var(--page-width);
margin-right: auto;
margin-left: auto;
padding-left: var(--gutter);
padding-right: var(--gutter);
}
.row {
margin-left: calc(-1 * var(--gutter));
margin-right: calc(-1 * var(--gutter));
}
.col {
display: block;
margin-left: var(--gutter);
margin-right: var(--gutter);
}
然后我尝试使用 scss 来缩短列类描述(同时这将允许我在整个代码中的一个位置更改列数 - 在 CSS 变量中--columns
)像这样
@for $n from 1 through var(--columns) {
.col-#{$n} {width: calc( #{$n} / var(--columns) - var(--gutter) * 2 ); }
}
但它没有用。有趣的细节是,当我将@for
语句从@for $n from 1 through
var(--columns)
`` 更改为@for $n from 1 through
12
它时编译良好。@for
并且在body内编译 CSS-Variable 没有问题。.col-#{$n} {width: calc( #{$n} / var(--columns) - var(--gutter) * 2 ); }
很好地编译成所需的一系列类。
如果我使用 scss 变量$columns
而不是 CSS 变量,那么我需要将我的 grid.scss 文件导入到项目的所有其他 scss 文件中。
这是我在 StackOverflow 上的第一个问题,所以如果需要任何其他详细信息,请告诉我。