SCSSで私はそうすることができます:そして
$selector-active: "&:hover, &:focus, &:active";
.class {
color: red;
#{$selector-active} {
color: green;
}
}
そしてその働き。LESSでこれを行うにはどうすればよいですか?
うーん、面白い。現在、LESS はセレクタ補間内で「&」を展開しません。つまり、単純な変換は機能しません。
@selector-active: &:hover, &:focus, &:active;
.class {
color: red;
@{selector-active} {
color: green;
}
}
したがって、さらにトリッキーなコードが必要になります...たとえば、コールバック/フック手法を使用します。
.selector-active() {
&:hover, &:focus, &:active {
.selector-active-properties();
}
}
.class {
color: red;
.selector-active();
.selector-active-properties() {
color: green;
}
}
私は@Maxの素敵なソリューションが好きでした。そして、これは私にさらに前進する方法を与えてくれます。だから私は自分自身のために言葉で一週間過ごしました。
.selector-active() {
&:hover, &:focus, &:active {
.inside();
}
}
.selector-active(@type) when (@type = hover) {
&:hover {
.inside();
}
}
使用中で:
.class {
color: red;
.selector-active(); .inside() {
color: red;
}
}
また、クラスで作業しようとしました。LESS は、このようなものではかなり厄介です。1.4.1 では、次を使用する必要があります。
.smthElse(@string) {
&.class-@{string}-small,
&.class-@{string}-big,
&.class-@{string}-tall {
.inside();
}
}
1.3.1では、次を使用する必要があります:
(~".myclass_@{index}") {...
@see http://lesscss.org/
コンパクトで十分使えます。だから私はまだLESSで作業することができます:)ええ。
PS:上記はすべてless.js v1.4.1用です