Bird
Raised Fist0
CSSmarkup~8 mins

Background repeat in CSS - Performance & Optimization

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Performance: Background repeat
MEDIUM IMPACT
Background repeat affects how the browser paints repeated images, impacting paint time and memory usage.
Using a background image that repeats unnecessarily over a large area
CSS
body {
  background-image: url('pattern.png');
  background-repeat: no-repeat;
  background-size: cover;
}
Painting a single image scaled to cover reduces repeated paint work and memory usage.
📈 Performance Gainsingle paint operation, less memory used
Using a background image that repeats unnecessarily over a large area
CSS
body {
  background-image: url('pattern.png');
  background-repeat: repeat;
}
Repeating a large image many times causes the browser to paint many tiles, increasing paint time and memory use.
📉 Performance Costtriggers multiple paint operations proportional to the number of repeats
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
background-repeat: repeat with large imageMinimal0High due to many repeated paints[X] Bad
background-repeat: no-repeat with scaled imageMinimal0Low paint cost with single image[OK] Good
Rendering Pipeline
Background repeat affects the Paint stage because the browser must draw the image multiple times if repeated. This increases paint time and memory usage.
Paint
Composite
⚠️ BottleneckPaint
Core Web Vital Affected
LCP
Background repeat affects how the browser paints repeated images, impacting paint time and memory usage.
Optimization Tips
1Avoid repeating large background images to reduce paint cost.
2Use background-repeat: no-repeat with background-size to control image display.
3Check paint times in DevTools Performance panel to spot costly repeated backgrounds.
Performance Quiz - 3 Questions
Test your performance knowledge
What is the main performance cost of using background-repeat: repeat with a large image?
AIncreased paint time due to many repeated image tiles
BIncreased DOM nodes causing reflows
CBlocking JavaScript execution
DIncreased network requests for each repeat
DevTools: Performance
How to check: Record a performance profile while loading the page and look for long paint times related to background images.
What to look for: Look for high paint durations and large memory usage in the Paint section indicating repeated background image painting.

Practice

(1/5)
1. What does the CSS property background-repeat: no-repeat; do to a background image?
easy
A. It repeats the background image horizontally only.
B. It repeats the background image vertically only.
C. It shows the background image only once without repeating.
D. It repeats the background image both horizontally and vertically.

Solution

  1. Step 1: Understand the meaning of no-repeat

    The value no-repeat means the background image will not be repeated at all.
  2. Step 2: Compare with other repeat options

    Other options like repeat-x or repeat-y repeat the image horizontally or vertically, but no-repeat shows it once.
  3. Final Answer:

    It shows the background image only once without repeating. -> Option C
  4. Quick Check:

    no-repeat means no repeating [OK]
Hint: No-repeat means show image once only, no copies [OK]
Common Mistakes:
  • Confusing no-repeat with repeat-x or repeat-y
  • Thinking no-repeat repeats image once horizontally
  • Assuming no-repeat repeats vertically
2. Which of the following is the correct CSS syntax to repeat a background image only horizontally?
easy
A. background-repeat: repeat;
B. background-repeat: repeat-y;
C. background-repeat: no-repeat;
D. background-repeat: repeat-x;

Solution

  1. Step 1: Recall the CSS values for background-repeat

    repeat-x repeats the background image horizontally, repeat-y vertically, no-repeat no repetition, and repeat repeats both ways.
  2. Step 2: Match the requirement

    The question asks for horizontal repetition only, so repeat-x is correct.
  3. Final Answer:

    background-repeat: repeat-x; -> Option D
  4. Quick Check:

    Horizontal repeat = repeat-x [OK]
Hint: repeat-x means horizontal repeat, repeat-y means vertical [OK]
Common Mistakes:
  • Mixing up repeat-x and repeat-y
  • Using repeat instead of repeat-x for horizontal only
  • Forgetting the hyphen in repeat-x
3. Given the CSS below, how will the background image behave?
div {
  background-image: url('pattern.png');
  background-repeat: repeat-y;
  width: 200px;
  height: 400px;
}
medium
A. The image repeats vertically down the height.
B. The image repeats both horizontally and vertically.
C. The image shows once without repeating.
D. The image repeats horizontally across the width.

Solution

  1. Step 1: Understand background-repeat: repeat-y;

    This value repeats the background image vertically along the height of the element.
  2. Step 2: Apply to the div dimensions

    The div is 200px wide and 400px tall, so the image will stack vertically down the 400px height.
  3. Final Answer:

    The image repeats vertically down the height. -> Option A
  4. Quick Check:

    repeat-y means vertical repeat [OK]
Hint: repeat-y repeats image vertically down the element [OK]
Common Mistakes:
  • Thinking repeat-y repeats horizontally
  • Confusing repeat-y with no-repeat
  • Assuming repeat-y repeats both directions
4. Identify the error in this CSS snippet if the goal is to repeat the background image both horizontally and vertically:
section {
  background-image: url('tile.png');
  background-repeat: repeat-x;
}
medium
A. The value repeat-x repeats only horizontally, not vertically.
B. The property background-repeat is misspelled.
C. The URL must be in double quotes, not single quotes.
D. The background image will not show without background-size.

Solution

  1. Step 1: Check the background-repeat value

    repeat-x repeats the image only horizontally, not vertically.
  2. Step 2: Match with the goal

    The goal is to repeat both horizontally and vertically, so repeat should be used instead.
  3. Final Answer:

    The value repeat-x repeats only horizontally, not vertically. -> Option A
  4. Quick Check:

    repeat-x = horizontal only, not both [OK]
Hint: repeat-x repeats horizontally only, use repeat for both [OK]
Common Mistakes:
  • Using repeat-x when both directions are needed
  • Thinking single quotes break URL syntax
  • Assuming background-size is required for repeat
5. You want a background image to repeat only vertically but stop after 3 repeats. Which CSS approach can achieve this effect?
hard
A. Use background-repeat: no-repeat; and add 3 copies of the image manually.
B. Use background-repeat: repeat-y; and set the container height to 3 times the image height.
C. Use background-repeat: repeat; and limit repeats with background-size.
D. Use background-repeat: repeat-x; and set max repeats to 3.

Solution

  1. Step 1: Understand CSS background-repeat limits

    CSS does not have a direct property to limit the number of repeats.
  2. Step 2: Use container size to control repeats

    By setting background-repeat: repeat-y; and adjusting the container height to exactly 3 times the image height, the image will repeat vertically 3 times and then stop.
  3. Final Answer:

    Use background-repeat: repeat-y; and set the container height to 3 times the image height. -> Option B
  4. Quick Check:

    Control repeats by container size with repeat-y [OK]
Hint: Limit repeats by container size, not CSS property [OK]
Common Mistakes:
  • Expecting CSS to limit repeat count directly
  • Using repeat-x instead of repeat-y for vertical repeats
  • Trying to limit repeats with background-size