div .mymixin('red','green')
.mymixin(@a, @b){
a {
color: @a;
span {
color: @b;
}
}
}
Этот код будет производить следующий CSS:набор родительского селектора в качестве переменной
div a{color:red;}
div a span{color: green;}
Мне нужно это, чтобы произвести это:
div a{color:red;}
div:not(.open) a span{color: green;}
Я пытался сделать что-то вроде этого:
div .mymixin('red','green')
@parent: &;
.mymixin(@a, @b){
a {
color: @a;
@{parent}:not(.open) span {
color: @b;
}
}
}
Но это не работает правильно, prod ucing
div a &:not(.open) span{color:green;}
Есть ли способ, чтобы назначить родителя переменной или сделать его другим способом, чтобы добиться того, что я после?
Спасибо.
P.S. Вот фактическая вложенность у меня есть:
.icfld(@name, @width, @height, @opacity, @open) {
> a {
...
> .icon {
...
}
&.disabled > .icon {
...
}
//&:not(.open) :not(.disabled):hover... will NOT work, because & at this point refers to
//"parent" > a and makes it "parent" > a:not(.open), while I need "parent":not(.open)
//the following line, however, works
&:not(.disabled):hover {
& when (@open=false) {
...
> .icon {
...
}
}
}
}
В первой структуре есть 'div: not (.open) a ...', но вложенность меньше выглядит. Почему бы не поставить это вне 'a {}' и определить его как '&: not (.open) span {}'? – Harry
Там много чего происходит, кроме того, что выше, поэтому я не могу просто выделить диапазон, если это единственный вариант. Я надеялся получить какой-то родительский селектор, если это вообще возможно. Но ты дал мне идею для работы. Спасибо. – chibis
'&' является родительским селектором, но с указанным выше вложением родительский элемент будет 'div a' (' div', потому что он вызывает mixin и 'a' из-за вложенности). Поэтому '&: not (.open)' будет производить 'div a: not (.open)'. – Harry