我可以使用 LESS 将当前选择器作为字符串访问吗?
Posted
技术标签:
【中文标题】我可以使用 LESS 将当前选择器作为字符串访问吗?【英文标题】:Can I access the current selector as a string using LESS? 【发布时间】:2015-01-28 17:33:31 【问题描述】:我想利用我的 css 类的名称来指定它们所依赖的图像的 url。我知道在选择器中使用 & 符号可以让您添加其他状态,但我想知道是否可以将其作为字符串访问?我想做类似以下的事情:
.my-image
background: url('images/@&.png');
并将其编译为:
.my-image
background: url('images/my-image.png');
再想一想,我现在发现我还需要以某种方式删除前导句点,但无论如何 - 有没有办法将选择器名称捕获为属性定义中的字符串?
【问题讨论】:
【参考方案1】:好吧,这与您想象的不完全一样,但也许它可以解决您的问题。
用你想要的选择器的所有值创建一个数组,然后让编译器创建规则(I've found the code here):
@images: 'my-image', 'cool-image', 'foobar';
.-(@i: length(@images)) when (@i > 0)
@name: e(extract(@images, @i));
&.@name background: url("images/@name.png")
.-((@i - 1));
.-;
【讨论】:
谢谢约翰,这确实是一个有效的选择,也是我没有想到的。我仍然很好奇是否有办法以某种方式访问当前上下文,所以我将保留这个问题,但如果没有任何结果,我会接受它:) 顺便说一句,你不需要引号,@images: my-image, cool-image, etc;
是有效的 Less 语句,然后你不需要 e(...)
。以上是关于我可以使用 LESS 将当前选择器作为字符串访问吗?的主要内容,如果未能解决你的问题,请参考以下文章