sass - 使用 Sass 生成动态类
问题描述
我想用 flexbox 创建我自己的 bootsrap。它是这样的:
.df {
display: flex;
}
.aic {
align-items: center;
}
.jcc {
justify-content: center;
}
.jcsb {
justify-content: space-between;
}
.fdc {
flex-direction: column;
}
.fx1 {
flex: 1;
}
但是我还想实现一件事,那就是边距和填充等的动态类。例如:
.mr-40 {
margin-right: 40;
}
所以我希望这个值(40)是动态的(1,5,100 等等)。有没有办法在 SCSS/SASS 中实现这一点?
解决方案
这只是一个快速实现:
@use "sass:map";
$utils: (
"padding": (
"className": p,
"property": padding,
"values": 0 10 20 30 40 50 60 70 90 100,
),
"margin": (
"className": m,
"property": padding,
"values": 0 10 20 30 40 50 60 70 90 100,
),
);
@each $key, $values in $utils {
@each $cValue in map.get($values, "values") {
.#{map.get($values, "className")}-#{$cValue} {
#{map.get($values, "property")}: $cValue + "px";
}
}
}
.p-0 {
padding: "0px";
}
.p-10 {
padding: "10px";
}
.p-20 {
padding: "20px";
}
// ...
.m-0 {
padding: "0px";
}
// ...
推荐阅读
- spring-boot - Spring Boot 和 Zuul 出现 404 错误
- angular - 在Angular 6中获取没有@ViewChild装饰器的视图子元素
- functional-programming - 功能惯用的 FFT
- java - 在 Java 中的 Linux 服务器中选择日语时,下载 CSV 文件头会变得垃圾
- jquery - 打开时更改表 tr(th td) 背景颜色
- javascript - 谷歌地图自动完成样式
- jquery - 自定义 jquery 插件在页面中不起作用
- javascript - 带有 v-bind 的 Nativescript Vue 切换按钮
- android - 需要支持分屏支持React原生Android
- sql-server - 在 Microsoft Access 中存储运算符,例如 >= OR <=