В Bootstrap 4 есть миксин hover-focus
, который определяется следующим образом (в scss/mixins/_hover.scss
):
@mixin hover-focus {
&:hover,
&:focus {
@content;
}
}
По сути, это просто :hover
плюс :focus
.
Но когда я использую его в своем коде, мне интересно, есть ли способ сделать отрицание на миксине, как псевдокласс
:not
на селекторе? Я думаю, что это затруднило бы чтение кода, если бы я использовал
@include hover-focus { //rules }
везде в своем коде, но
&:not(:hover):not(:focus) { //more rules }
здесь.
Я пробовал:
.myclass, .myclass2 {
&:not(@include hover-focus) {
// myRules
}
но вместо генерации
.myclass:not(:hover):not(:focus), .myclass2:not(:hover):not(:focus) {
// myRules
}
это дает мне
Error: Invalid CSS after "&:not(": expected ")", was "@include hover-..."
on line 2 of test.scss
Итак, я что-то не так сделал или это вообще невозможно?
Редактировать: Я только что понял отрицание &:hover, &:focus
не &:not(:hover), &:not(:focus)
, а &:not(:hover):not(:focus)
: / Исправлено в вопросе.