LESS CSS - 混合参数和 Nth-Child - 没有循环
LESS CSS - Mixin Arguments and Nth-Child - without looping
我正在尝试编写一个与 ID #p0x1 关联的 less 参数。我希望能够写一个像
这样的论点
@ytrans = translateY(@argument * 2)
然后为每个 ID 提供该参数值。
#p0x1(@argument:3){@ytrans}
但是,我无法使用 nth-child css 执行此操作。我只见过用循环解决这个问题的解决方案。有没有更直接的方式来解决这个问题?
#p0x1 div:nth-child(1)(@argument:3){
这是我目前拥有的代码。
/*Cube Position 0,1*/
#p0x1 div:nth-child(1) {
transform : @zaxis @ytrans;
background-image: linear-gradient(@gradient);
}
#p0x1 div:nth-child(2) {
transform : @top @zaxis @ytrans;
background-image: linear-gradient(@gradient);
}
#p0x1 div:nth-child(3) {
transform : @back @zaxis @ytrans;
background-image: linear-gradient(@gradient);
}
#p0x1 div:nth-child(4) {
transform : @bottom @zaxis @ytrans;
background-image: linear-gradient(@gradient);
}
#p0x1 div:nth-child(5) {
transform: @left @zaxis @ytrans;
background-image: linear-gradient(@gradient);
}
#p0x1 div:nth-child(6) {
transform : @right @zaxis @ytrans;
background-image: linear-gradient(@gradient);
}
我终于在一个出色的个人名字的帮助下找到了这个解决方案 seven-phases-max who helped me with my 。
我的解决方案
.coordinates(-2, 2);
.coordinates(@min, @max) {
.xcoor; .xcoor(@xcoor: @min) when (@xcoor <= @max) {
.ycoor; .xcoor(@xcoor + 1);
}
.ycoor(@ycoor: @min) when (@ycoor <= @max) {
@ytrans:translatey(@cubesize * @ycoor);
@xtrans:translatex(@cubesize * @xcoor);
#p@{xcoor}x@{ycoor} div:nth-child(1) {
transform: @zaxis @ytrans @xtrans;
background-image: linear-gradient(@gradient);
}
#p@{xcoor}x@{ycoor} div:nth-child(2) {
transform: @top @zaxis @ytrans @xtrans;
background-image: linear-gradient(@gradient);
}
#p@{xcoor}x@{ycoor} div:nth-child(3) {
transform: @back @zaxis @ytrans @xtrans;
background-image: linear-gradient(@gradient);
}
#p@{xcoor}x@{ycoor} div:nth-child(4) {
transform: @bottom @zaxis @ytrans @xtrans;
background-image: linear-gradient(@gradient);
}
#p@{xcoor}x@{ycoor} div:nth-child(5) {
transform: @left @zaxis @ytrans @xtrans;
background-image: linear-gradient(@gradient);
}
#p@{xcoor}x@{ycoor} div:nth-child(6) {
transform: @right @zaxis @ytrans @xtrans;
background-image: linear-gradient(@gradient);
}
.ycoor(@ycoor + 1);
}
}
Output of more than 60,000 lines
这就是为什么我喜欢 CSS 的预处理器。如果有人有改进的建议,我会欢迎他们。
我正在尝试编写一个与 ID #p0x1 关联的 less 参数。我希望能够写一个像
这样的论点@ytrans = translateY(@argument * 2)
然后为每个 ID 提供该参数值。
#p0x1(@argument:3){@ytrans}
但是,我无法使用 nth-child css 执行此操作。我只见过用循环解决这个问题的解决方案。有没有更直接的方式来解决这个问题?
#p0x1 div:nth-child(1)(@argument:3){
这是我目前拥有的代码。
/*Cube Position 0,1*/
#p0x1 div:nth-child(1) {
transform : @zaxis @ytrans;
background-image: linear-gradient(@gradient);
}
#p0x1 div:nth-child(2) {
transform : @top @zaxis @ytrans;
background-image: linear-gradient(@gradient);
}
#p0x1 div:nth-child(3) {
transform : @back @zaxis @ytrans;
background-image: linear-gradient(@gradient);
}
#p0x1 div:nth-child(4) {
transform : @bottom @zaxis @ytrans;
background-image: linear-gradient(@gradient);
}
#p0x1 div:nth-child(5) {
transform: @left @zaxis @ytrans;
background-image: linear-gradient(@gradient);
}
#p0x1 div:nth-child(6) {
transform : @right @zaxis @ytrans;
background-image: linear-gradient(@gradient);
}
我终于在一个出色的个人名字的帮助下找到了这个解决方案 seven-phases-max who helped me with my
我的解决方案
.coordinates(-2, 2);
.coordinates(@min, @max) {
.xcoor; .xcoor(@xcoor: @min) when (@xcoor <= @max) {
.ycoor; .xcoor(@xcoor + 1);
}
.ycoor(@ycoor: @min) when (@ycoor <= @max) {
@ytrans:translatey(@cubesize * @ycoor);
@xtrans:translatex(@cubesize * @xcoor);
#p@{xcoor}x@{ycoor} div:nth-child(1) {
transform: @zaxis @ytrans @xtrans;
background-image: linear-gradient(@gradient);
}
#p@{xcoor}x@{ycoor} div:nth-child(2) {
transform: @top @zaxis @ytrans @xtrans;
background-image: linear-gradient(@gradient);
}
#p@{xcoor}x@{ycoor} div:nth-child(3) {
transform: @back @zaxis @ytrans @xtrans;
background-image: linear-gradient(@gradient);
}
#p@{xcoor}x@{ycoor} div:nth-child(4) {
transform: @bottom @zaxis @ytrans @xtrans;
background-image: linear-gradient(@gradient);
}
#p@{xcoor}x@{ycoor} div:nth-child(5) {
transform: @left @zaxis @ytrans @xtrans;
background-image: linear-gradient(@gradient);
}
#p@{xcoor}x@{ycoor} div:nth-child(6) {
transform: @right @zaxis @ytrans @xtrans;
background-image: linear-gradient(@gradient);
}
.ycoor(@ycoor + 1);
}
}
Output of more than 60,000 lines
这就是为什么我喜欢 CSS 的预处理器。如果有人有改进的建议,我会欢迎他们。