Dyrektywa @for w SASS

Za pomocą dyrektywy @for można wyprowadzić określone style w ilości podanej przez zmienną-licznik. Pierwsza wersja zapisu @for wygląda tak:

scss@for $var from (początek) through (koniec)

W tym przypadku zakres ściśle obejmuje wartości (początek) i (koniec). Warto zwrócić uwagę na to, że (początek) i (koniec) - muszą zwracać liczby całkowite, ponieważ określają one kierunek liczenia, tzn. jeśli (początek) jest mniejsze niż (koniec), licznik będzie rósł i odpowiednio, jeśli odwrotnie - malał.

Przeanalizujmy działanie dyrektywy @for w pierwszej wersji składni na następującym przykładzie:

styles.scss@for $count from 1 through 5 {
  .li-#{$count} {
    width: $count + px;
  }
}

Wynik kompilacji:

styles.css.li-1 {
  width: 1px; 
}
.li-2 {
  width: 2px; 
}
.li-3 {
  width: 3px; 
}
.li-4 {
  width: 4px; 
}
.li-5 {
  width: 5px; 
}

W drugiej wersji zapis wygląda następująco:

scss@for $var from (początek) to (koniec)

Przy czym tutaj wartość (koniec) jest pomijana.

Weźmy poprzedni przykład i zapiszmy go w drugiej wersji:

styles.scss@for $count from 1 to 5 {
  .li-#{$count} {
    width: $count + px;
  }
}

Teraz zwróć uwagę na otrzymany kod:

styles.css.li-1 {
  width: 1px; 
}

.li-2 {
  width: 2px; 
}

.li-3 {
  width: 3px; 
}

.li-4 {
  width: 4px; 
}
Задание 1

Opowiedz, jaki będzie wynik kompilacji następującego kodu:

styles.scss@for $var from 5 through 1 {
  li-#{$var} {
    padding: 10 * $var + px;
  }
}
Задание 2

Opowiedz, jaki będzie wynik kompilacji następującego kodu:

styles.scss@for $var from 1 to 3 {
  .navbar-link-#{$var} {
    color: blue;
    width: 10px * $var;
  }
}