【发布时间】:2013-12-16 07:52:03
【问题描述】:
我有图标精灵图像,每个图标在 20 x 20 像素的区域中。每个图标都有几个变体(黑色、彩色、白色小等)。并且有大量的。我宁愿在我的 LESS 文件中提供它们的名称,让处理器为它们生成样式,而不是为每个单独的图标编写样式。
这是我想出的,但它似乎不起作用。
@icons: upvote,downvote,comment,new,notify,search,popup,eye,cross;
@array: ~`(function(i){ return (i + "").replace(/[\[\] ]/gi, "").split(","); })("@{icons}")`;
@count: ~`(function(i){ return i.split(",").length; })("@{icons}")`;
.iconize (@c) when (@c < @count) {
@val: ~`(function(a){ return a.replace(" ","").split(",")[0]; })("@{array}")`;
@array: ~`(function(a){ a = a.replace(" ","").split(","); a.splice(0, 1); return a; })("@{array}")`;
&.@{val} { background-position: (-20px * @c) 0; }
&.color.@{val} { background-position: (-20px * @c) -20px; }
&.white.@{val} { background-position: (-20px * @c) -40px; }
.iconize(@c + 1);
}
.iconize(@c) when (@c = @count) {}
.iconize(0);
我唯一想编辑的是@icons 变量,我只需在其中输入他们的名字。我正在使用 Visual Studio 2013 的 Web Essentials 插件在文件保存时自动处理我的 LESS 文件。
我做错了什么?
【问题讨论】:
标签: less auto-generate