Bird
Raised Fist0
SASSmarkup~20 mins

@for loop (through vs to) in SASS - Practice Questions

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Sass Loop Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Difference between @for ... through and @for ... to in Sass
What is the main difference between @for $i from 1 through 3 and @for $i from 1 to 3 in Sass?
ABoth <code>through</code> and <code>to</code> exclude the last number (3).
BThe <code>to</code> keyword includes the last number (3), while <code>through</code> excludes it.
CBoth <code>through</code> and <code>to</code> include the last number (3).
DThe <code>through</code> keyword includes the last number (3), while <code>to</code> excludes it.
Attempts:
2 left
💡 Hint
Think about whether the loop runs up to and including the last number or stops before it.
📝 Syntax
intermediate
1:30remaining
Output of @for loop with 'to' keyword
What CSS is generated by this Sass code?
@for $i from 1 to 4 {
  .item-#{$i} {
    width: 10px * $i;
  }
}
A
.item-1 { width: 10px; }
.item-2 { width: 20px; }
.item-3 { width: 30px; }
B
.item-1 { width: 10px; }
.item-2 { width: 20px; }
.item-3 { width: 30px; }
.item-4 { width: 40px; }
C
.item-1 { width: 10px; }
.item-2 { width: 20px; }
DSyntax error: missing semicolon after width value
Attempts:
2 left
💡 Hint
Remember that to excludes the last number.
❓ rendering
advanced
2:00remaining
Visual result of @for loop with 'through' keyword
Given this Sass code:
@for $i from 1 through 3 {
  .box-#{$i} {
    height: 5rem * $i;
    background-color: lighten(#0077cc, 10% * $i);
  }
}

What will you see in the browser?
AThree boxes with heights 5rem, 10rem, 15rem and progressively lighter blue backgrounds.
BTwo boxes with heights 5rem and 10rem and the same blue background color.
CThree boxes with the same height 5rem but different background colors.
DNo boxes appear because of a syntax error.
Attempts:
2 left
💡 Hint
Check how many times the loop runs and how the properties change with $i.
❓ selector
advanced
2:00remaining
Selector generated by nested @for loops with 'to' and 'through'
What selectors are generated by this Sass code?
@for $i from 1 to 3 {
  @for $j from 1 through 2 {
    .item-#{$i}-#{$j} {
      content: "#{$i}-#{$j}";
    }
  }
}
A.item-1-1, .item-1-2, .item-2-1, .item-2-2, .item-3-1, .item-3-2
BSyntax error due to nested loops
C.item-1-1, .item-1-2, .item-2-1, .item-2-2
D.item-1-1, .item-2-1, .item-3-1
Attempts:
2 left
💡 Hint
Remember the difference in loop ranges for to and through.
❓ accessibility
expert
2:30remaining
Accessibility impact of using @for loops for generating classes
When using Sass @for loops to generate multiple classes for UI elements, what accessibility consideration should you keep in mind?
ALoops in Sass prevent keyboard navigation by default.
BEnsure that generated classes do not rely solely on color for conveying information, to support users with color blindness.
CUsing loops automatically adds ARIA labels to all generated elements.
DGenerated classes should always use <code>display:none</code> to hide content from screen readers.
Attempts:
2 left
💡 Hint
Think about how visual styles affect users with different abilities.

Practice

(1/5)
1. What is the main difference between @for $i from 1 through 5 and @for $i from 1 to 5 in Sass?
easy
A. through includes 5, to stops before 5
B. to includes 5, through stops before 5
C. Both include 5
D. Both stop before 5

Solution

  1. Step 1: Understand through keyword

    The through keyword means the loop will include the last number in the range.
  2. Step 2: Understand to keyword

    The to keyword means the loop stops before the last number, excluding it.
  3. Final Answer:

    through includes 5, to stops before 5 -> Option A
  4. Quick Check:

    through includes last number, to excludes last number [OK]
Hint: Remember: through = include last, to = exclude last [OK]
Common Mistakes:
  • Confusing which keyword includes the last number
  • Thinking both keywords behave the same
  • Assuming to includes the last number
2. Which of the following is the correct syntax to loop from 1 up to but not including 5 in Sass?
easy
A. @for $i from 1 through 5 { }
B. @for $i in 1 to 5 { }
C. @for $i from 1 to 5 { }
D. @for $i from 1 until 5 { }

Solution

  1. Step 1: Identify correct @for syntax

    The correct syntax uses @for $i from start to end or through.
  2. Step 2: Choose syntax for excluding last number

    To exclude the last number, use to, so @for $i from 1 to 5 { } is correct.
  3. Final Answer:

    @for $i from 1 to 5 { } -> Option C
  4. Quick Check:

    Use to to exclude last number [OK]
Hint: Use 'to' to exclude last number in @for loop [OK]
Common Mistakes:
  • Using 'through' when wanting to exclude last number
  • Using 'in' instead of 'from'
  • Using 'until' which is invalid in Sass
3. What CSS classes will be generated by this Sass code?
@for $i from 1 through 3 {
  .item-#{$i} {
    width: 10px * $i;
  }
}
medium
A. .item-1 { width: 10px; } .item-3 { width: 30px; }
B. .item-1 { width: 10px; } .item-2 { width: 20px; }
C. .item-1 { width: 10px; } .item-2 { width: 20px; } .item-3 { width: 10px; }
D. .item-1 { width: 10px; } .item-2 { width: 20px; } .item-3 { width: 30px; }

Solution

  1. Step 1: Understand loop range with through

    The loop runs from 1 to 3 including 3, so $i = 1, 2, 3.
  2. Step 2: Calculate width for each iteration

    Widths are 10px * 1 = 10px, 10px * 2 = 20px, 10px * 3 = 30px.
  3. Final Answer:

    .item-1 { width: 10px; } .item-2 { width: 20px; } .item-3 { width: 30px; } -> Option D
  4. Quick Check:

    Loop includes 3, widths multiply by $i [OK]
Hint: Remember 'through' includes last number, so 3 iterations [OK]
Common Mistakes:
  • Thinking loop stops before 3
  • Multiplying width incorrectly
  • Missing last class .item-3
4. Identify the error in this Sass code:
@for $i from 1 to 4 {
  .box-#{$i} {
    height: 5px * $i;
  }
}

@for $j from 1 through 4
  .circle-#{$j} {
    width: 5px * $j;
  }
medium
A. Missing curly braces in second loop
B. Using through instead of to in second loop
C. Multiplication syntax is wrong
D. Variable names must be the same in both loops

Solution

  1. Step 1: Check syntax of first loop

    The first loop uses correct syntax with curly braces around the block.
  2. Step 2: Check syntax of second loop

    The second loop is missing curly braces after the loop declaration, which is required.
  3. Final Answer:

    Missing curly braces in second loop -> Option A
  4. Quick Check:

    Loops need curly braces for their blocks [OK]
Hint: Always use curly braces {} after @for loop declaration [OK]
Common Mistakes:
  • Omitting curly braces after @for
  • Confusing 'to' and 'through' keywords
  • Incorrect multiplication syntax
5. You want to create 4 buttons with classes .btn-1 to .btn-4 using a Sass @for loop. Which loop should you use to include the last button class .btn-4?
hard
A. @for $i from 1 to 4 { ... }
B. @for $i from 1 through 4 { ... }
C. @for $i from 1 until 4 { ... }
D. @for $i from 1 to 5 { ... }

Solution

  1. Step 1: Understand loop range needed

    You want classes from 1 to 4 inclusive, so the loop must include 4.
  2. Step 2: Choose correct keyword to include last number

    Using through includes the last number, so @for $i from 1 through 4 is correct.
  3. Final Answer:

    @for $i from 1 through 4 { ... } -> Option B
  4. Quick Check:

    Use through to include last number [OK]
Hint: Use 'through' to include last number in loop [OK]
Common Mistakes:
  • Using 'to' which excludes last number
  • Using invalid keyword 'until'
  • Using range that goes beyond needed number
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard