Bird
Raised Fist0
CSSmarkup~8 mins

Line height 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: Line height
MEDIUM IMPACT
Line height affects text layout and vertical spacing, impacting layout stability and paint performance.
Setting line height for readable text without causing layout shifts
CSS
p { line-height: 1.5; }
Using a fixed numeric line height ensures consistent spacing, reducing layout shifts and reflows.
📈 Performance Gainreduces CLS and limits reflows to initial layout only
Setting line height for readable text without causing layout shifts
CSS
p { line-height: normal; }
Using 'normal' lets browsers calculate line height differently, causing inconsistent spacing and layout shifts.
📉 Performance Costtriggers multiple reflows on font load and layout shifts during page interaction
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Using 'normal' line-heightMinimalMultiple on font load and resizeMedium[X] Bad
Using fixed numeric line-height (e.g., 1.5)MinimalSingle initial reflowLow[OK] Good
Rendering Pipeline
Line height influences the Style Calculation and Layout stages by determining vertical spacing of text lines. Changes cause reflows and repaints.
Style Calculation
Layout
Paint
⚠️ BottleneckLayout
Core Web Vital Affected
CLS
Line height affects text layout and vertical spacing, impacting layout stability and paint performance.
Optimization Tips
1Use numeric line-height values instead of 'normal' for consistent spacing.
2Avoid changing line-height dynamically to prevent layout thrashing.
3Consistent line-height reduces layout shifts improving CLS scores.
Performance Quiz - 3 Questions
Test your performance knowledge
How does using 'normal' line-height affect page performance?
ACauses inconsistent spacing and layout shifts triggering multiple reflows
BImproves paint speed by reducing layout calculations
CHas no impact on rendering performance
DReduces bundle size significantly
DevTools: Performance
How to check: Record a performance profile while loading the page and resizing text. Look for Layout and Recalculate Style events.
What to look for: Frequent Layout events indicate costly reflows caused by unstable line heights.

Practice

(1/5)
1. What does the CSS property line-height control in a webpage?
easy
A. The vertical space between lines of text
B. The color of the text
C. The font size of the text
D. The horizontal space between words

Solution

  1. Step 1: Understand the property purpose

    The line-height property sets the amount of vertical space between lines of text in a block.
  2. Step 2: Compare options to definition

    Only The vertical space between lines of text correctly describes vertical spacing between lines, others describe unrelated text styles.
  3. Final Answer:

    The vertical space between lines of text -> Option A
  4. Quick Check:

    Line height = vertical spacing [OK]
Hint: Line height = space vertically between text lines [OK]
Common Mistakes:
  • Confusing line height with font size
  • Thinking it controls text color
  • Mixing it up with letter spacing
2. Which of the following is the correct syntax to set line height to 1.5 in CSS?
easy
A. lineheight = 1.5;
B. line-height: 1.5;
C. line-height = 1.5px;
D. lineHeight: 1.5;

Solution

  1. Step 1: Recall CSS property syntax

    CSS properties use hyphenated names and colon to assign values, ending with semicolon.
  2. Step 2: Check each option

    line-height: 1.5; uses correct CSS syntax: line-height: 1.5;. Options B and C use incorrect assignment or units, D uses camelCase which is invalid in CSS.
  3. Final Answer:

    line-height: 1.5; -> Option B
  4. Quick Check:

    CSS property syntax = property: value; [OK]
Hint: CSS uses hyphen and colon, no equals sign [OK]
Common Mistakes:
  • Using equals sign instead of colon
  • Adding units like px to unitless line height
  • Using camelCase instead of hyphen
3. Given this CSS:
p { font-size: 16px; line-height: 2; }

What is the computed line height in pixels for the paragraph text?
medium
A. 16px
B. 2px
C. 32px
D. 8px

Solution

  1. Step 1: Understand line-height as a multiplier

    When line-height is a number (like 2), it multiplies the font size to get the line height in pixels.
  2. Step 2: Calculate line height

    Font size is 16px, line-height is 2, so 16px x 2 = 32px.
  3. Final Answer:

    32px -> Option C
  4. Quick Check:

    Line height = font size x number [OK]
Hint: Multiply font size by line-height number [OK]
Common Mistakes:
  • Confusing line-height number as pixels directly
  • Using line-height value as font size
  • Ignoring multiplication and picking wrong units
4. This CSS code is intended to increase line spacing but does not work as expected:
p { line-height: 20; }

What is the error?
medium
A. Missing units like 'px' for line-height value
B. line-height cannot be set on paragraphs
C. line-height value must be less than 1
D. line-height property name is misspelled

Solution

  1. Step 1: Check line-height value type

    The value 20 without units is treated as a multiplier, but 20 is unusually large and likely intended as pixels.
  2. Step 2: Identify missing units

    To specify exact pixel spacing, units like 'px' are required: line-height: 20px;. Without units, 20 means 20 times font size, which is huge and may cause unexpected layout.
  3. Final Answer:

    Missing units like 'px' for line-height value -> Option A
  4. Quick Check:

    Units needed for absolute line height values [OK]
Hint: Add units like px for fixed line height values [OK]
Common Mistakes:
  • Using large numbers without units expecting pixels
  • Thinking line-height can't be set on paragraphs
  • Misspelling property name
5. You want to create a responsive paragraph where line height adjusts nicely with font size for readability. Which CSS rule achieves this best?
hard
A. p { font-size: 16px; line-height: 1.5rem; }
B. p { font-size: 16px; line-height: 24px; }
C. p { font-size: 1.2rem; line-height: 24px; }
D. p { font-size: 1.2rem; line-height: 1.5; }

Solution

  1. Step 1: Understand responsive units

    Using rem units for font size scales text with root font size, good for responsiveness.
  2. Step 2: Use unitless line-height for flexibility

    Setting line-height: 1.5; as a number scales line height relative to font size, adapting well on different devices.
  3. Step 3: Compare options

    p { font-size: 1.2rem; line-height: 1.5; } uses rem for font size and unitless line-height, making it flexible. Options B and C fix line height in pixels, less flexible. p { font-size: 16px; line-height: 1.5rem; } mixes units incorrectly.
  4. Final Answer:

    p { font-size: 1.2rem; line-height: 1.5; } -> Option D
  5. Quick Check:

    Unitless line-height + rem font size = responsive text [OK]
Hint: Use unitless line-height with rem font size for responsiveness [OK]
Common Mistakes:
  • Using fixed pixel line height with scalable font size
  • Mixing units in line-height property
  • Not using unitless line-height for flexible spacing