Я намерен использовать @at-root body.home #{&}
во вложенном селекторе, однако, поскольку мои селекторы img
и video
требуют одинаковых свойств @at-root body.home #{&}
только цели img
, а не video
.
Я пытался использовать функцию selector-append
, которая бы выполняла эту работу, но проблема в том, что она удаляет пробелы, поэтому вместо:
body.home .slider__container.--media .slider .slide img,body.home .slider__container.--media .slider .slide video
Как я могуоставить мои вложенные селекторы, но ссылку на body.home внутри нескольких селекторов? Я думаю, я мог бы использовать класс (ха-ха), но мне любопытно!
В итоге я получаю
body.home.slider__container.--media .slider .slide img,body.home.slider__container.--media .slider .slide video
.slider__container {
&.--media {
.slider {
.slide {
img, video {
max-height: calc(100% - (30px * 4) - (28px * 2));
max-width: calc(100% - 60px);
@at-root #{selector-append('body.home', &)} {
max-height: calc(100% - (65px * 4) - (28px * 2));
transition: transform 400ms, filter 400ms;
transform: scale(0.8);
}
@include media(tablet-p) {
max-height: calc(100% - (20px * 4) - (28px * 2));
max-width: calc(100% - 40px);
@at-root #{selector-append('body.home', &)} {
max-width: calc(100% - 100px);
}
}
@include media(phone) {
max-height: calc(100% - (20px * 4) - (28px * 2));
max-width: calc(100% - 40px);
@at-root #{selector-append('body.home', &)} {
max-height: calc(100% - (65px * 4) - (24px * 2));
max-width: calc(100% - 50px);
transform: scale(0.7);
}
}
}
}
}
}
}