Следить за новостями:

Категории
Свежие записи
BrainFБлог

Интерполяция (interpolation) — Stylus

Stylus поддерживает интерполяцию с помощью выражения заключенного в фигурные скобки {}, которое затем становится частью идентификатора. Например, -webkit-{‘border’ + ‘-radius’} принимает значение -webkit-border-radius.

Отличным примером использования является расширение свойств с вендорными префиксами.

  vendor(prop, args)
    -webkit-{prop} args
    -moz-{prop} args
    {prop} args

  border-radius()
    vendor('border-radius', arguments)
  
  box-shadow()
    vendor('box-shadow', arguments)

  button
    border-radius 1px 2px / 3px 4px

Результат:

  button {
    -webkit-border-radius: 1px 2px / 3px 4px;
    -moz-border-radius: 1px 2px / 3px 4px;
    border-radius: 1px 2px / 3px 4px;
  }

Интерполяция селекторов (Selector Interpolation)

Интерполяция работает также и с селекторами. Например мы можем перебрать первые пять строк в таблице для того чтобы установить им свойство height, как показано ниже:

table
  for row in 1 2 3 4 5
    tr:nth-child({row})
      height: 10px * row

Результат:

table tr:nth-child(1) {
  height: 10px;
}
table tr:nth-child(2) {
  height: 20px;
}
table tr:nth-child(3) {
  height: 30px;
}
table tr:nth-child(4) {
  height: 40px;
}
table tr:nth-child(5) {
  height: 50px;
}

Вы также можете собрать несколько селекторов в одной переменной и интерполировать их на месте:

mySelectors = '#foo,#bar,.baz'

{mySelectors}
  background: #000</code>

Результат:

#foo,
#bar,
.baz {
  background: #000;
}

Еще по теме

Ваш комментарий
выберите имя