@waltaki

Как выбрать селектор выше в SCSS?

Есть например такой код:
.overlay  {
    position: relative;

    .overlay-layer {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        background-color: rgba($black, 1);
        transition: all 0.3s ease;
        opacity: 0;
    }
}
.light-theme * {
    .overlay  {
        .overlay-layer {
            background-color: rgba($black-lt, 1);
        }
    }
}


Можно ли, как-то не создавая полную ветвь для .light-theme *, сделать это сразу в месте, где и нужно поменять цвет? Что-то вроде:
.overlay  {
    position: relative;

    .overlay-layer {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        background-color: rgba($black, 1);
        transition: all 0.3s ease;
        opacity: 0;

        < .light-theme * {
            background-color: rgba($black-lt, 1);
        }
    }
}


Просто не удобно, для каждого места создавать заново цепочку селекторов
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Sass
frontend developer
.overlay  {
    //...
    .overlay-layer {
        //...
        .light-theme * & {
            background-color: rgba($black-lt, 1);
        }
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы