Dynamic Variable Names in LESS CSS

2019-01-19 10:37发布

I have been trying this for a while, looking at other answers, but to no avail. Hopefully someone can help me.

I am trying to generate some dynamic variable names within a mixin.

The variables are already defined:

@horizontal-default-color: #fff;
@horizontal-inverse-color: #000;

etc..

The mixin I want would be something like this:

.horizontal-variant(@variant) {
    color: @{horizontal-@{@variant}-color}
}

And the result I am expecting, when called:

.horizontal-default{
   .horizontal-variant(~"default");
}
.horizontal-inverse{
   .horizontal-variant(~"inverse");
}

is

.horizontal-default {color: #fff}
.horizontal-inverse {color: #000}

Unfortunately I run into errors every time.

I know this can be done, I have seen it being used in Font Awesome LESS where @{fa-css-prefix} is defined in variables. I am just having trouble transporting the same solution in my project.

You can try testing the code at http://lesstester.com/

标签: css less
1条回答
爱情/是我丢掉的垃圾
2楼-- · 2019-01-19 11:20

You can use Variable Names. And I've tested the code at http://lesstester.com/, it works.

@horizontal-default-color: #fff;
@horizontal-inverse-color: #000;

.horizontal-variant(@variant) {
  @color: "horizontal-@{variant}-color";
  color: @@color;
}

.horizontal-default{
  .horizontal-variant(~"default");
}
.horizontal-inverse{
  .horizontal-variant(~"inverse");
}
查看更多
登录 后发表回答