0

Я пытаюсь сделать что-то, что, по-моему, простое - выведите все селектора h1-h6. У меня было больше успеха, создав mixin, который также выводит свойство и значение для этого свойства, чем просто интерполировать в селектор, но даже тогда мне не удалось создать mixin, который бы успешно принял любые аргументы для свойства и значения.Интерполирующий стилус для значений циклов в селекторе

I может закончил с миксином, который выполнил задание в одном конкретном месте. Как я могу изменить это решение, чтобы я мог использовать его для любой комбинации свойств и значений?

hcolor() { 
    headings = 1 2 3 4 5 6 
    selectorh = 'h' 
    for hnumber, hnumber in headings { 
     // join(selectorh, hnumber) 
     +cache('h' + hnumber) { 
      color: colordarkgray 
     } 
     hnumber = hnumber +1 
    } 
} 

Одна вещь, которую я пытался это не сработало:

hify(property, value) { 
    headings = 1 2 3 4 5 6 
    selectorh = 'h' 
    for hnumber, hnumber in headings { 
     // join(selectorh, hnumber) 
     +cache('h' + hnumber) { 
      {property}: {value} 
     } 
     hnumber = hnumber +1 
    } 
} 

Еще одна попытка, сообщили в Sass решения, не приводит к возникновению ошибок, но я не знаю, как использовать его в селектор, если он работает на всех:

hify() { 
    hstart = 1 
    hstop = 6 
    headings = 1 2 3 4 5 6 
    for hnumber in headings { 
     if hnumber < hstop { 
      return 'h{hnumber}, ' 
     } 
     else if hnumber == hstop { 
      return 'h{humber}' 
     } 
     hnumber = humber + 1 
    } 
} 

Я чувствую, что я должен быть рядом, но я не могу адаптировать информацию о Стилус interpolation и default functions в раствор.

ответ

2

Ну, немного измененная версия вашего примера Сасс:

headings($from = 1, $to = 6) 
    if $from == $to 
    'h' + $from 
    else 
    'h' + $from + ',' + headings($from + 1, $to) 

{headings(1, 4)} 
    color: red 
    background: blue 
+0

Отлично. Я считаю, что сложная вещь заключается в том, как линия 5 из вашего решения работает вместо традиционного цикла. – PaulL