javascript - 用于键名更改的 CSS 变量更少?

标签 javascript css less

我是 LESS CSS 的新手。

在我的 LESS CSS 代码中。仅举个例子。

@block : body;
@name  : color;
@value : #99CC00;

@block
{
    @name : @value
}

我想要这个输出

body
{
    color : #99CC00
}

是否可行?如果可能,请给我 LESS CSS 代码。

这是我的问题

.browser-fix(@key,@value)
{
    -webkit-@key: @value;
    -moz-@key: @value;
    -ms-@key: @value;
    -o-@key: @value;
    @key: @value;
}

p
{
    .browser-fix(box-shadow,1px 1px 5px rgba(0,0,0,0.2) inset);
    .browser-fix(transform,rotate(30deg));
}

最佳答案

我很确定在 LESS 中使用变量来定义赋值的左侧是不可能的。

但是你可以使用 parametric mixin和一个选择器插值来完成至少一半的工作。

@block: body;

.color-mixin(@value) {
    color: @value;
}

@{block} {
    .color-mixin(#99CC00);
}

编辑:

为了解决你的问题,我个人会为每个浏览器特定的属性做单独的混合,因为浏览器特定的属性并不总是匹配你指定的模式,例如设置不透明度。单独的 mixin 也更易于阅读。

.box-shadow(@shadow) {
    -webkit-box-shadow: @shadow;
    -moz-box-shadow: @shadow;
    box-shadow: @shadow;
}

.rotate(@degrees) {
    -webkit-transform: rotate(@degrees);
    -moz-transform: rotate(@degrees);
    -ms-transform: rotate(@degrees);
    -o-transform: rotate(@degrees);
    transform: rotate(@degrees);
}

// Example of an attribute that does not match the pattern.
.opacity(@opacity) {
    opacity: @opacity / 100;
    filter: ~"alpha(opacity=@{opacity})";
}

p {
    .box-shadow(1px 1px 5px rgba(0,0,0,0.2) inset);
    .rotate(30deg);
}

关于javascript - 用于键名更改的 CSS 变量更少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13759446/

相关文章:

button - 在 Twitter Bootstrap 中更改 btn-group .active 样式

javascript - 当里面有 iframe 时使 div 可点击

javascript - 如何在 Tampermonkey 中获取表格单元格值?

javascript - elasticsearch搜索过滤器等于问题

html - 为什么我不能对齐两个按钮

html - CSS:div 中的段落与 div 文本出现在同一行

html - 在 scss 中实现这种设计的优雅方式是什么?

javascript - 使用 jQuery AJAX 检索数据而无需在 php 中重新加载页面

css - 如何防止CSS继承背景色?

css - Less:在呈现的 CSS 中显示行号原始文件和行号