2016-05-21 6 views
0

У меня есть следующий Stylus коддинамическое свойство сборки Функция в Стилус дает ожидаемый «:», получил «[»

spaces = { 
    none: 0, 
    xxx-small: .125, 
    xx-small: 25, 
    x-small: .5, 
    small: .75 
    medium: 1, 
    large: 1.5, 
    x-large: 2, 
    xx-large: 3 
} 
properties = top, right, bottom, left 
types = { 
    m: margin, 
    p: padding 
} 
space() 
    for type in types 
    for property in properties 
     for space in spaces 
     .{type}-{property}--{space} 
      {types[type]}-{property}: {spaces[space]}rem 

space() 

Я хотел бы, чтобы вывести что-то вдоль линий:

.m-top--none { 
    margin-top: 0rem; 
} 
.m-top--xxx-small { 
    margin-top: 0.125rem; 
} 

etc 

Однако я, столкнувшись с ошибкой:

expected ":", got "["

Любые идеи, что я сделал не так? Если я возьму {spaces[space]}rem и просто замените его на 1000%, это похоже на работу?

ответ

1

В настоящее время Stylus не поддерживает интерполяцию внутри значений свойств. Вы должны использовать () в этом случае:

{types[type]}-{property}: (spaces[space])rem 
+0

Ах да, это и было. Большое спасибо! –