我需要根据其内容向页面添加图标。换句话说,如果页面包含图像、画廊、视频……我将添加一个图标来指示其性质。
为此,我将 CSS 类添加到body
标记并使用后代选择器将图标添加到适当的位置。
显然,这项任务会导致 CSS 中出现大量重复代码,因此我想使用LESS Loop生成它。
这是我的实际尝试(图标是图标字体):
@icons:"\e926", "\e90e", "\e914";
.icons-loop(@i; @ico) when (@i <= length(@ico)) {
@page-type:extract(@ico, @i);
.page-type_@{page-type}
{
#icon_container:before
{
content: extract(@icons, @i);
}
}
.icons-loop((@i + 1), @ico);
}
.icons(@ico...) {
.icons-loop(1, @ico);
}
.icons(image, gallery, video);
我写了这篇文章,从其他类似的问题中汲取灵感。
它有效,但我承认这还不是我真正想要的,原因有两个:
- 我认为当前需要一个变量
@icons
来声明图标实体,以及一个 mixins.icons
来声明不同的页面类型并不是那么直观,因为类型不同。为了连贯性,最好在两个声明中都使用 LESS 变量 - 编写一种关联数组肯定会更好,我可以在其中声明页面类型和相关图标之间的对应关系。像这样的东西:
@page-type: image, "\e926"; gallery, "\e90e"; video, "\e914";
有任何想法吗?