Возможно, не лучшее решение, но вы можете рассмотреть возможность использования for
для достижения этой цели, написав код, подобный приведенному ниже:
$mobile = '(max-width 767px)';
$tablet = '(min-width 768px) and (max-width: 1365px)';
$desktop ='(min-width: 1366px)';
.sidebar
width 300px;
for m in $mobile $tablet
@media m
display none;
И у вас будет такой вывод:
.sidebar {
width: 300px;
}
@media (max-width: 767px) {
.sidebar {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1365px) {
.sidebar {
display: none;
}
}
Код стилуса как-то похож на ваш, но на выходе не будет одного медиазапроса.
ОБНОВЛЕНИЕ
Вот еще один hacky способ избежать дублирования медиазапроса, но вам придется продублировать селектор:
$mobile = '(max-width: 767px)';
$tablet = '(min-width: 768px) and (max-width: 1365px)';
$desktop ='(min-width: 1366px)';
.sidebar
width 300px;
unquote("@media " + join(',',$mobile $tablet) + "{")
.sidebar
display none;
unquote("}")
Выше приведено следующее:
.sidebar {
width: 300px;
}
@media (max-width: 767px),(min-width: 768px) and (max-width: 1365px) {
.sidebar {
display: none;
}
}