使用 Stylus 遍历列表
Iterating over a list with Stylus
我决定从 SCSS => Stylus 切换预编译器。我已经查看了 Stylus 的文档,但遇到了障碍。
手写笔列表:
breakpoints = xs 176px,
s 480px,
m 768px
这个列表是这样拉出来的:
respond-to()
if arguments in breakpoints
@media (min-width: arguments)
{block}
else
error('Invalid breakpoint.')
像这样的引用
respond-to(xs)
col()
但这没有任何输出。
我不想遍历每个数组项并输出它们,我只想将用户定义的键名称与数组中的键名称进行匹配,如果它存在于数组中,则将其单个值输出到一条语句,否则报错,如上所示。
代码合乎逻辑,有什么想法吗?
编辑 #1:尝试将列表转换为 散列 并使用相同的 pull 语句,没有成功
哈希:
breakpoints = { 'xs': 176px, 's': 480px, 'm ': 768px }
拉:
respond-to()
if arguments in breakpoints
@media (min-width: breakpoints[arguments])
{block}
else
error('Invalid breakpoint.')
编辑 #2:找到了与我正在尝试做的类似的东西,只是不想要那么多代码。 CTRL F // 定义缓存和别名 here.
编辑 #3:找到一个具有相同用法的 NPM Library
arguments
是传递参数的 列表 ,因此您应该使用 [0]
获取第一个参数。或者你可以只命名参数。例如:
breakpoints = { 'xs': 176px, 's': 480px, 'm ': 768px }
respond-to() // or respond-to(bp) and delete the second line
bp = arguments[0]
if bp in breakpoints
@media (min-width: breakpoints[bp])
{block}
else
error('Invalid breakpoint.')
+respond-to('xs') // the + sign is important because it's a block mixin call
body
color red
我决定从 SCSS => Stylus 切换预编译器。我已经查看了 Stylus 的文档,但遇到了障碍。
手写笔列表:
breakpoints = xs 176px,
s 480px,
m 768px
这个列表是这样拉出来的:
respond-to()
if arguments in breakpoints
@media (min-width: arguments)
{block}
else
error('Invalid breakpoint.')
像这样的引用
respond-to(xs)
col()
但这没有任何输出。
我不想遍历每个数组项并输出它们,我只想将用户定义的键名称与数组中的键名称进行匹配,如果它存在于数组中,则将其单个值输出到一条语句,否则报错,如上所示。
代码合乎逻辑,有什么想法吗?
编辑 #1:尝试将列表转换为 散列 并使用相同的 pull 语句,没有成功
哈希:
breakpoints = { 'xs': 176px, 's': 480px, 'm ': 768px }
拉:
respond-to()
if arguments in breakpoints
@media (min-width: breakpoints[arguments])
{block}
else
error('Invalid breakpoint.')
编辑 #2:找到了与我正在尝试做的类似的东西,只是不想要那么多代码。 CTRL F // 定义缓存和别名 here.
编辑 #3:找到一个具有相同用法的 NPM Library
arguments
是传递参数的 列表 ,因此您应该使用 [0]
获取第一个参数。或者你可以只命名参数。例如:
breakpoints = { 'xs': 176px, 's': 480px, 'm ': 768px }
respond-to() // or respond-to(bp) and delete the second line
bp = arguments[0]
if bp in breakpoints
@media (min-width: breakpoints[bp])
{block}
else
error('Invalid breakpoint.')
+respond-to('xs') // the + sign is important because it's a block mixin call
body
color red