Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SASS:从列表返回字符串后获取变量值_Sass - Fatal编程技术网

SASS:从列表返回字符串后获取变量值

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)} 简短的回答是:不,因为您正在寻找的是动态变量名,它们没有得到很好的支持。但是,我建议使用映射,以获得更

有什么方法可以得到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)}

简短的回答是:不,因为您正在寻找的是动态变量名,它们没有得到很好的支持。但是,我建议使用映射,以获得更清晰的代码,而无需重复变量名,并且总体上简化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帮了我这么多干杯!