Direktiva @for v SASS

Pomocí direktivy @for lze vypsat určité styly v množství určeném proměnnou-čítačem. První varianta zápisu @for vypadá takto:

scss@for $var from (začátek) through (konec)

V tomto případě jsou do rozsahu striktně zahrnuty hodnoty (začátek) a (konec). Je třeba si dát pozor na to, že (začátek) a (konec) - musí vracet celá čísla, protože určují směr počítání, tj. pokud je (začátek) menší než (konec), čítač bude růst a naopak, pokud je tomu obráceně - klesat.

Podívejme se na funkci direktivy @for v první variantě syntaxe na následujícím příkladu:

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

Výsledek kompilace:

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

Druhá varianta zápisu vypadá následovně:

scss@for $var from (začátek) to (konec)

Přičemž zde je hodnota (konec) vynechána.

Vezměme předchozí příklad a zapišme jej druhou variantou:

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

Nyní si všimněte výsledného kódu:

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

.li-2 {
  width: 2px; 
}

.li-3 {
  width: 3px; 
}

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

Vysvětlete, jaký bude výsledek kompilace následujícího kódu:

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

Vysvětlete, jaký bude výsledek kompilace následujícího kódu:

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