2014-10-10 157 views
0

我想要使用已定义的颜色(来自其他规则)并将其传递给mixin。有效的东西是这样的:LessCSS可以读取元素上给定的CSS属性吗?

.btn-default { 
    background: red; 
} 


.btn-green { 
    background: green; 
} 

.btn-blue { 
    background: blue; 
} 

// get inherited ('red', 'blue', or 'green') value here somehow 
.btn-special { 
    @bg-color: ?? 
    .darken(@bg-color, 20%); 
} 

这里的渔获是.btn-special里面我不知道什么颜色,它被设置在其他地方...和基于什么类的按钮已经应用到可以改变它。

我希望.btn-special能够取用任何定义的background-color,并将其值传递给.darken() mixin。

这可能吗?

的标记会是这样的:

<button class="btn-default btn-special"></button> 
<button class="btn-green btn-special"></button> 
<button class="btn-blue btn-special"></button> 
+0

嘛,少只是一个CSS预处理器,所以我怀疑它可以做这样的事情,如果它不可能在CSS中。我已经看过attr()CSS [函数](https://developer.mozilla.org/en-US/docs/Web/CSS/attr),但它是非常实验性的,只适用于content属性,并且没有很多的支持。 – dramzy 2014-10-10 23:26:26

+0

在CSS中我只是'继承',但我想把它设置为一个变量。 – chovy 2014-10-11 00:13:01

+0

如果'darken'函数的所有功能都是使背景颜色变暗,那么您可以执行[this](http://codepen.io/hari_shanx/pen/xKfhF)。这是从答案[这里]改编(http://stackoverflow.com/questions/21591445/lighten-parents-unknown-background-color-in-child)。 – Harry 2014-10-11 03:19:01

回答

-1

它的原因重复的代码,但可能是这样的:

.btn-default { 
    background: red; 
    &.btn-special { 
     background: .darken(red, 20%); 
    } 
} 

+0

这个问题是特定于不知道在这种情况下的颜色。 – chovy 2014-10-11 01:30:16

相关问题