Как подняться на уровень выше в sass?

Есть такая структура стилей:
.block {
  &__text {
    ...
  }

  &__title {
    ...
  }
}


Но для блока хочу завести модификатор, который влияет на детей:
.block {

  &--open {
    .block--text {
     ...
    }
  }

  &__text {
    ...
  }

  &__title {
    ...
  }
}


Как подняться на уровень выше &--open и не писать селектор полностью ?
  • Вопрос задан
  • 674 просмотра
Решения вопроса 1
Emchik
@Emchik
Что-то прикольное сделать могу
Переменная $this.
Типичная проблема при создании self-controlled компонентов (особенно при использовании методологии BEM) — это создание селекторов внутри модификаторов.

Вместо:
.filter-block {
    &__title {
        color: black;
    }
        
    &--expandable {
        .filter-block__title {
            color: blue;
        }
    }
}


Можно:
.filter-block {
    $this: &;
    &__title {
        color: black;
    }
    &--expandable {
        #{$this}__title {
            color: blue;
        }
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы