【发布时间】:2019-03-12 09:53:23
【问题描述】:
现状
我有以下手写笔代码
$mobile = '(max-width 767px)';
$tablet = '(min-width 768px) and (max-width: 1365px)';
$desktop = '(min-width: 1366px)';
.sidebar
width 300px;
@media $tablet
display none;
此代码运行良好 - 列出的屏幕尺寸的侧边栏消失。
问题
现在,我想让它在 $mobile 断点处消失。
理想情况下,我想要的是这样的:
$mobile = '(max-width 767px)';
$tablet = '(min-width 768px) and (max-width: 1365px)';
$desktop = '(min-width: 1366px)';
.sidebar
width 300px;
@media $tablet, $mobile
display none;
它会输出(或类似的东西)
.sidebar { width: 300px; }
@media (min-width: 768px) and (max-width: 1365px), (max-width: 767px) {
.sidebar { display: none; }
我尝试过的
-
@media $tablet, $mobile导致 Stylus 输出@media $tablet, $mobile -
@media '{$tablet}, {$mobile}导致语法错误。 -
@media join(',', $tablet, $mobile)导致语法错误。
我能做但不想做的事
- 我可以设置一个新的断点
$mobileAndTablet,这会破坏目的(我不想进行所有组合)。 - 我可以在
$desktop断点上始终设置display: none和display: block,这不是我要在这里寻找的(在这个例子中我有3 个断点,在其他的我可能有更多)。
TL;DR
如何在 Stylus 中为多个断点使用多个变量?
Sass 的 @media #{$mobile}, #{$tablet} 具有此功能。我正在为 Stylus 寻找类似的东西。
【问题讨论】:
-
我希望有一些东西不会让我需要对项目中使用媒体查询的每个文件进行导入。但如果这是唯一的方法,它会做的。仍在寻找更好的方法,谢谢:)