Variables declared inside an if statement results in “undefined variable”

后端 未结 1 461
Happy的楠姐
Happy的楠姐 2020-12-31 17:49

I was hoping that defining variables in an if statement would work in Sass but unfortunately I get errors saying that the variable isn\'t defined. Here is what I tried:

1条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-31 18:27

    Sass variables are only visible to the level of indentation at which they are declared and those nested underneath it. So you only need to declare !bg_color outside of your for loop:

    !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}
    

    And you'll get the following 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; }
    

    0 讨论(0)
提交回复
热议问题