【问题标题】:SASS: How to check if a map exist [duplicate]SASS:如何检查地图是否存在[重复]
【发布时间】:2015-02-15 17:03:40
【问题描述】:

在 SASS 中,我只想在地图存在的情况下生成一些 CSS。为此,我必须先检查地图是否存在。它应该与此类似:

$mymap: (
   width:   10px,
   color:   blue,
);


@if MAP-EXISTS($mymap) {
   .myclass { 
      width: map-get($mymap, width);
      color: map-get($mymap, blue);
   }
}

由于 函数 'MAP-EXISTS()' 在 SASS 中不存在: 我正在寻找另一种方式来做到这一点。但我想不通。

所以我的问题是:如何检查地图是否存在于 SASS 中?

(SASS版本为V3.4.9)

感谢您的回答和帮助。

【问题讨论】:

  • 不:它不是重复的。我看过这个帖子。但不幸的是,检查变量的方式不适用于地图。
  • 您要么做错了,要么这里没有足够的代码来重现问题。如果变量根本不存在,这是另一个问题的重复。如果变量确实存在但索引不存在,那么您已经收到的答案就是答案(但您声称它不存在)。这让我相信你做错了什么。
  • 感谢 4u 回复和帮助。当然可能是我错了,有时头脑中有很多结:-('如果变量不存在......'是什么意思?任务根本不是检查变量,而是检查地图......因为我尝试了两次(老实说:在开始这个线程之前)sass函数'variable_exists()'或者使用地图的默认值工作在另一个线程中描述......注意:代码是完整的。只有在地图存在时才应该编写类......但是由于地图是单独配置的一部分,因此不确定地图是否已设置。

标签: sass


【解决方案1】:

没有办法检查地图是否存在,但您可以检查 map-has-key 是否返回 true 或 false 地图是否具有与给定键关联的值,这可能会帮助您作为替代解决方案。

一个例子:

$mymap: (
   width:   10px,
   color:   blue,
);

.map-exist { 

  $map-existance: map-has-key($mymap, width);
  $map-existance: map-has-key($mymap, color);

  // Uncomment the line bellow to see that if a value doesn't exist
  // it won't apply any propertie

  // $map-existance: map-has-key($mymap, padding);

  @if $map-existance == true {
    width: map-get($mymap, width);
    color: map-get($mymap, color);
  }
}

一个演示:http://sassmeister.com/gist/f7ecb5b1fb2781cc3225

【讨论】:

  • 感谢 4u 回复。确实,我之前测试过一些类似的方式7方法。问题是:即使 $mymap 不存在,它也会抛出一个错误并停止编译。但是我需要一个解决方案,该方法只有在地图不存在时才不做任何事情并继续前进......当我搜索解决方案时:在 sass 文档中,我只找到了地图函数不存在。也许有一种简单的方法来处理错误并继续......或者另一种方法来检查地图是否存在...... - 我认为应该有一个:-)
猜你喜欢
  • 2015-08-12
  • 2018-12-20
  • 2012-10-13
  • 1970-01-01
  • 1970-01-01
  • 2012-01-25
  • 2018-08-13
  • 2016-12-06
相关资源
最近更新 更多