如何在Less混合(Mixin)中使用映射(Map)?
Less映射(Map)使用错误的修复方案
你当前的问题是把Less的**映射(Map)写成了混合宏(Mixin)**的格式,导致调用时触发语法错误,下面是具体的修复步骤:
1. 修正映射的定义格式
你原来的代码是带括号的混合宏写法,不符合Less映射的语法规范,需要去掉括号,同时移除颜色值的引号(Less中颜色是原生值,加引号会被识别为字符串,可能导致样式失效):
#colors { backgroundDarkPrimary: #0747A6; backgroundMedium: #dfe1e6; backgroundLight: #ebecf0; backgroundLightest: #F4F5F7; backgroundLightPrimary: #D2E5FE; backgroundLightSuccess: #E4FCEF; }
2. 正确调用映射中的值
定义好映射后,你可以通过[键名]的语法来获取对应的值,示例如下:
// 先赋值给变量再使用 @darkPrimary: #colors[backgroundDarkPrimary]; .header { background-color: @darkPrimary; } // 直接在属性中调用 .card { background-color: #colors[backgroundLight]; }
错误原因说明
你参考的文档里的映射是无括号的规则集,而你误写成了带括号的混合宏。混合宏是用来复用代码块的语法,而映射是Less中用于存储键值对的结构,二者语法和用途完全不同,所以用映射的调用方式去操作混合宏,就会触发语法报错。
内容的提问来源于stack exchange,提问作者alexandr2006
相关产品推荐
相关产品推荐

