Начну с простого примера:
.classA {
color: red;
.otherClass {
color: yellow;
}
}
.classB {
.classA;
}
приводит к:
.classA {
color: red;
}
.classA .otherClass {
color: yellow;
}
.classB {
color: red;
}
.classB .otherClass {
color: yellow;
}
Но:
.classA {
color: red;
}
.class A .otherClass {
color: yellow;
}
.classB {
.classA;
}
приводит к:
.classA {
color: red;
}
.class A .otherClass {
color: yellow;
}
.classB {
color: red;
}
Я не могу понять, почему компилятор не включает .otherClass
в .classB
. Я имею в виду, что оба определения classA
равны, не так ли?
Есть ли простое объяснение странному поведению? В частности, есть ли способ включить .otherClass
через примеси или мне нужно скопировать код?
.classB
ссылается на селектор.classA
, в котором он имеет.otherClass
, поэтому он будет расширен для класса B. И во втором случае он ссылается на селектор класса.classA
, у которого нет . otherClass IN IT (.classA .otherClass
— другой селектор), поэтому он не расширяется. - person Kukeltje   schedule 07.08.2015