С этой строкой вы фактически применяете два класса к i
, которые contract-icon
и ic-{something}
(в примере это ic-rise_fall
).
Как вы сказали &
используется для объединения имен классов.Средства: -
&.ic-rise_fall {
&--invert:before { # What's this?
content: url('../images/trading_app/contracts/invert/rise_fall.svg');
}
}
Это будет преобразовано в
&.ic-rise_fall--invert:before {
content: url('../images/trading_app/contracts/invert/rise_fall.svg');
}
в CSS.
Таким образом, в основном код
.contract-icon {
&.ic-rise_fall {
&:before {
content: url('../images/trading_app/contracts/rise_fall.svg');
}
&--invert:before { # What's this?
content: url('../images/trading_app/contracts/invert/rise_fall.svg');
}
}
.other-class {
padding-right: 8px;
}
}
будетбыть преобразован в
.contract-icon.ic-rise_fall:before {
content: url('../images/trading_app/contracts/rise_fall.svg');
}
.contract-icon.ic-rise_fall--invert:before {
content: url('../images/trading_app/contracts/invert/rise_fall.svg');
}
.contract-icon .other-class {
padding-right: 8px;
}
Вот так.
Этот ic-{something}
передается от родителя как props
, поэтому может быть либо ic-rise_fall
, либо ic-rise_fall--invert
.Поэтому мы просто рассматриваем возможности использования SASS здесь.
<span class='contract-icon ic-rise_fall'>
<i class='other-class'></i>
</span>
Рассмотрим это как случай, когда вы применили other-class
и ic-rise_fall