Sass - concat to @ at-root селектор - PullRequest
0 голосов
/ 14 апреля 2019

Я довольно часто использую @ at-root (так как классы динамически добавляются и удаляются из тела), и мне было интересно, возможно ли что-то похожее на приведенное ниже?

header.main {
    @at-root body[class*="contact"] #{&}, body.text-single #{&} {
        background-color: white;
        &.header-is--hidden {
            background-color: red; // I know this won't work
        }
    }
}

Вместо того, чтобы писать:

header.main {
    @at-root body[class*="contact"] #{&}, body.text-single #{&} {
        background-color: white;
    }
    @at-root body[class*="contact"].header-is--hidden #{&}, body.text-single.header-is--hidden #{&} {
        background-color: red;
    }
}

1 Ответ

0 голосов
/ 14 апреля 2019

Интересно, возможно ли что-то подобное ниже?

Да, это

Вы можете сохранить селектор header.main впеременная и использовать интерполяцию для ее вывода - как:

header.main {
  $sel: &;  //  contains header.main

  @at-root body[class*="contact"], body.text-single {
    #{$sel} {
      background-color: white;
    }
    &.header-is--hidden #{$sel} {
      background-color: red;
    }
  }
}

CSS-вывод

body[class*="contact"] header.main, 
body.text-single header.main {
  background-color: white;
}
body[class*="contact"].header-is--hidden header.main, 
body.text-single.header-is--hidden header.main {
  background-color: red;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...