sass - Mixin 函数,它接受一些 CSS 并返回自动递增/递减一些值的媒体查询
问题描述
我目前正在弄清楚以下用例:
我制作了一个 mixin,它返回其内容的媒体查询(这里的$breakpoint
变量只是上面在文件中定义的一些值)
@mixin responsive {
@media screen and (min-width: $breakpointXS) {
@content;
}
@media screen and (min-width: $breakpointSM) {
@content;
}
@media screen and (min-width: $breakpointMD) {
@content;
}
}
然后我可以按如下方式使用这个mixin
.myElement {
@include responsive {
height: 20px;
width: 50px;
}
}
但正如您所看到的,它基本上编译为具有相同内容的这 3 个媒体查询。我想弄清楚的是
- 有那个 1 mixin
responsive
,但不知何故将基值传递给它,即20px
高度和50px
宽度。 - 然后在媒体查询中使用这些基值
XS
,但将它们乘以媒体查询和媒体查询。1.2
SM
1.6
MD
因此,最终目标是拥有一个 mixin 函数,其中我传递基本 css / 基本值以用于最小的屏幕媒体查询,并通过递增/乘以这些基本值以编程方式输出其他值。
解决方案
您可以@content
在使用关键字定义内容的条件下将参数传递给using
,例如:
@mixin responsive {
@media screen and (min-width: $breakpointXS) {
@content(1);
}
@media screen and (min-width: $breakpointSM) {
@content(1.2);
}
@media screen and (min-width: $breakpointMD) {
@content(1.6);
}
}
并且用法变为
.myElement {
@include responsive using ($multiplier) {
height: 20px * $multiplier;
width: 50px * $multiplier;
}
}
推荐阅读
- linux - 在 Red-hat Ubuntu 中更改 GNU Make 的默认版本
- linux - 在 linux arm64 上使用 ucontext_t 是否安全?
- coldfusion - ColdFusion 写入文件
- python - 强制处理异常
- python - 将二维数组附加到文本文件
- android - 拉动以关闭 React 导航模式
- mongodb - Springboot MongoDB 连接 URI 在其他键中指定(不使用 spring.data.mongodb.uri)
- android - 如果新片段替换之前的片段或添加到堆栈中,我在哪里配置?
- cypress - 将 Private Repo 中的自定义命令导入 Cypress Repo
- iphone - 自动缩放后返回原始缩放比例