gpt4 book ai didi

html - 使用类名在 css/less 中动态添加样式

转载 作者:太空宇宙 更新时间:2023-11-04 15:53:37 26 4
gpt4 key购买 nike

有没有一种方法可以通过传入类名在 css/less 文件中动态添加样式?

例如:

<div class="xyz_20"></div>
<div class="xyz_40"></div>

而不是写:

.xyz_20 {width:20px;} .xyz_40 {width:40px;}

有没有一种方法可以让我编写单个类 .xyz_i 并根据 i 值自动添加宽度,例如 .xyz_i {width: i px;}` 而无需涉及 javascript。

如果是这样,请提出建议。

最佳答案

据我所知,这是不可能的,但这是内联样式的一个很好的用例:

<div class="xyz" style="width:20px"></div>

如果你想支持有限数量的宽度,那么你可以使用递归来生成类:

.widthgen(@count) when (@count > 0) {
.widthgen((@count - 10));
.xyz_@{count} {
background-color: red;
width: @count * 1px;
}
}

.widthgen(50);

输出:

.xyz_10 {
background-color: red;
width: 10px;
}
.xyz_20 {
background-color: red;
width: 20px;
}
.xyz_30 {
background-color: red;
width: 30px;
}
.xyz_40 {
background-color: red;
width: 40px;
}
.xyz_50 {
background-color: red;
width: 50px;
}

列表插件

你可以使用lists插件(安装:npm install -g less-plugin-lists)线性模式:

@widths: 10, 20, 40, 50;

.for-each(@i in @widths) {
.xyz_@{i} {
background-color: red;
width: @i * 1px;
}
}

你会编译它:

lessc --lists in.less out.css

你会得到:

.xyz_10 {
background-color: red;
width: 10px;
}
.xyz_20 {
background-color: red;
width: 20px;
}
.xyz_40 {
background-color: red;
width: 40px;
}
.xyz_50 {
background-color: red;
width: 50px;
}

关于html - 使用类名在 css/less 中动态添加样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47876684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com