SASS:从列表返回字符串后获取变量值
有什么方法可以得到n($list,1)的值吗 我现在明白了SASS:从列表返回字符串后获取变量值,sass,Sass,有什么方法可以得到n($list,1)的值吗 我现在明白了 @media only screen and (max-width: xs-1px) {} 我想要变量$xs=600px的值 @media only screen and (max-width: 600px - 1px) {} 我试过: $nth($scree-size , 1) $#{nth($scree-size , 1)} 简短的回答是:不,因为您正在寻找的是动态变量名,它们没有得到很好的支持。但是,我建议使用映射,以获得更
@media only screen and (max-width: xs-1px) {}
我想要变量$xs=600px的值
@media only screen and (max-width: 600px - 1px) {}
我试过:
$nth($scree-size , 1)
$#{nth($scree-size , 1)}
简短的回答是:不,因为您正在寻找的是动态变量名,它们没有得到很好的支持。但是,我建议使用映射,以获得更清晰的代码,而无需重复变量名,并且总体上简化mixin:
$breakpoints: (
xs: 600px,
sm: 960px,
md: 1280px,
lg: 1920px
);
@mixin respond($media) {
@if map-has-key($breakpoints, $media) {
@media only screen and (max-width: map-get($breakpoints, $media) - 1px) {
@content;
}
}
}
@include respond("md") {
.class {
color: red;
}
}
产出:
@media only screen and (max-width: 1279px) {
.class {
color: red;
}
}
简短的回答是:不,因为您正在寻找的是动态变量名,它们没有得到很好的支持。但是,我建议使用映射,以获得更清晰的代码,而无需重复变量名,并且总体上简化mixin:
$breakpoints: (
xs: 600px,
sm: 960px,
md: 1280px,
lg: 1920px
);
@mixin respond($media) {
@if map-has-key($breakpoints, $media) {
@media only screen and (max-width: map-get($breakpoints, $media) - 1px) {
@content;
}
}
}
@include respond("md") {
.class {
color: red;
}
}
产出:
@media only screen and (max-width: 1279px) {
.class {
color: red;
}
}
很好的建议,但是我如何查找列表的第一个和最后一个$key?我想检查@if$media==first(即xs){@content}e@else{@content}要从映射中获取所有键的列表,请使用函数,并获取使用函数的第n个元素。例如,为了得到最后一个键:
nth(映射键($breakpoints),length(映射键($breakpoints))
谢谢,我尝试了很多组合,但是你的回答解决了我的问题,我也在使用文档,但我可能忘记关闭一些括号。不管怎样,你的ans帮了我这么多干杯!很好的建议,但是我如何查找列表的第一个和最后一个$key?我想检查@if$media==first(即xs){@content}e@else{@content}要从映射中获取所有键的列表,请使用函数,并获取使用函数的第n个元素。例如,为了得到最后一个键:nth(映射键($breakpoints),length(映射键($breakpoints))
谢谢,我尝试了很多组合,但是你的回答解决了我的问题,我也在使用文档,但我可能忘记关闭一些括号。不管怎样,你的ans帮了我这么多干杯!