8 Stimmen

Innerhalb einer if-Anweisung deklarierte Variablen führen zu einer "undefinierten Variablen".

Ich hatte gehofft, dass die Definition von Variablen in einer if-Anweisung in Sass funktionieren würde, aber leider erhalte ich Fehler, die besagen, dass die Variable nicht definiert ist. Hier ist, was ich versucht habe:

@for !i from 1 through 9
    !foo = #000
    @if !i == 1
        !bg_color = #009832
    @if !i == 2
        !bg_color = #195889
    ...

    #bar#{!i} 
        color: #{!foo}
        background-color: #{!bg_color}

Mit diesem Code würde ich den folgenden Fehler erhalten:

Undefinierte Variable: "!bg_color".

11voto

chriseppstein Punkte 9857

Sass-Variablen sind nur für die Einrückungsebene sichtbar, auf der sie deklariert sind, sowie für die darunter verschachtelten Variablen. Sie müssen !bg_color also nur außerhalb Ihrer for-Schleife deklarieren:

!bg_color = #FFF
@for !i from 1 through 9
    !foo = #000
    @if !i == 1
        !bg_color = #009832
    @if !i == 2
        !bg_color = #195889

    #bar#{!i} 
        color: #{!foo}
        background-color: #{!bg_color}

Sie erhalten dann das folgende Css:

#bar1 {
  color: black;
  background-color: #009832; }

#bar2 {
  color: black;
  background-color: #195889; }

#bar3 {
  color: black;
  background-color: #195889; }

#bar4 {
  color: black;
  background-color: #195889; }

#bar5 {
  color: black;
  background-color: #195889; }

#bar6 {
  color: black;
  background-color: #195889; }

#bar7 {
  color: black;
  background-color: #195889; }

#bar8 {
  color: black;
  background-color: #195889; }

#bar9 {
  color: black;
  background-color: #195889; }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X