Bird
Raised Fist0
CSSmarkup~10 mins

Text alignment in CSS - Browser Rendering Trace

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
Render Flow - Text alignment
[Parse CSS] -> [Match selector to text element] -> [Apply text-align property] -> [Calculate inline box positions] -> [Repaint text with new alignment]
The browser reads the CSS, finds the text element, applies the text-align property, recalculates how the text lines up inside its container, then redraws the text visually.
Render Steps - 4 Steps
Code Added:<div class="container"> <p>Hello, this is some text.</p> </div>
Before

[container]
|             
| Hello, this is some text.
|             
After

[container]
| Hello, this is some text.
|             
Adding the container div with a paragraph inside creates a block box with left-aligned text by default.
🔧 Browser Action:Creates DOM nodes and applies default styles (text-align: left).
Code Sample
A box with a border containing a paragraph of text that is centered horizontally inside the box.
CSS
<div class="container">
  <p>Hello, this is some text.</p>
</div>
CSS
.container {
  width: 20rem;
  border: 0.1rem solid black;
  text-align: center;
}
Render Quiz - 3 Questions
Test your understanding
After applying step 4, how is the text positioned inside the container?
AThe text is aligned to the right edge of the container.
BThe text is aligned to the left edge of the container.
CThe text is centered horizontally inside the container.
DThe text is stretched to fill the container width.
Common Confusions - 3 Topics
Why doesn't text-align center work on my div?
Text-align only affects inline content inside a block container. If your div has no inline text or only block children, you won't see the effect.
💡 Text-align centers inline text inside the container, not block-level child elements.
Why is my text still left aligned after setting text-align center?
If you apply text-align to a parent container, but the text is inside a child element with its own text-align, the child's setting overrides the parent.
💡 Child elements' text-align overrides parent container's text-align.
Why doesn't text-align affect vertical alignment?
Text-align only controls horizontal alignment of inline content. Vertical alignment requires different CSS properties like line-height or flexbox alignment.
💡 Use text-align for horizontal alignment only.
Property Reference
PropertyValue AppliedAxis/DirectionVisual EffectCommon Use
text-alignleftHorizontalAligns text to the left edgeDefault for most text
text-aligncenterHorizontalCenters text horizontallyCenter headings or buttons
text-alignrightHorizontalAligns text to the right edgeAlign numbers or dates
text-alignjustifyHorizontalStretches lines to fill container widthNewspaper columns, paragraphs
Concept Snapshot
text-align controls horizontal alignment of inline text inside a block container. Default is left alignment. Common values: left, center, right, justify. Does not affect vertical alignment or block elements. Useful for headings, paragraphs, and inline content alignment.

Practice

(1/5)
1. What does the CSS property text-align: center; do to the text inside an element?
easy
A. Aligns the text to the left edge of the container
B. Centers the text horizontally within its container
C. Aligns the text to the right edge of the container
D. Justifies the text so both edges are aligned

Solution

  1. Step 1: Understand the text-align property

    This property controls horizontal alignment of inline content inside a block container.
  2. Step 2: Interpret the value center

    The value center places the text in the middle horizontally.
  3. Final Answer:

    Centers the text horizontally within its container -> Option B
  4. Quick Check:

    text-align: center = centered text [OK]
Hint: Center text with text-align: center; [OK]
Common Mistakes:
  • Confusing center with justify
  • Thinking it aligns text vertically
  • Mixing up left and right alignment
2. Which of the following is the correct CSS syntax to align text to the right inside a paragraph?
easy
A. p { text-align = right; }
B. p { align-text: right; }
C. p { text-align: right; }
D. p { text-align-right: true; }

Solution

  1. Step 1: Recall correct CSS property syntax

    CSS uses property: value; pairs inside curly braces for selectors.
  2. Step 2: Identify correct property and value

    text-align is the property, and right is the value. The syntax uses a colon and semicolon.
  3. Final Answer:

    p { text-align: right; } -> Option C
  4. Quick Check:

    Correct CSS syntax uses colon and semicolon [OK]
Hint: Use colon : not equals = for CSS properties [OK]
Common Mistakes:
  • Using = instead of :
  • Wrong property name like align-text
  • Missing semicolon at end
3. Given the CSS below, how will the text inside the <div> appear?
div {
  text-align: justify;
  width: 300px;
}
medium
A. Text lines will stretch to fill the width, aligning both left and right edges
B. Text will be centered horizontally inside the div
C. Text will align only to the left edge
D. Text will align only to the right edge

Solution

  1. Step 1: Understand text-align: justify;

    This value stretches each line so the text aligns evenly on both left and right edges.
  2. Step 2: Consider container width

    The fixed width of 300px means text lines will expand or contract to fill that width fully.
  3. Final Answer:

    Text lines will stretch to fill the width, aligning both left and right edges -> Option A
  4. Quick Check:

    justify aligns text edges both sides [OK]
Hint: Justify aligns text edges left and right [OK]
Common Mistakes:
  • Thinking justify centers text
  • Confusing justify with right alignment
  • Ignoring container width effect
4. Identify the error in this CSS snippet that aims to center text inside a header:
header {
  text-align center;
}
medium
A. Missing semicolon after property name
B. Incorrect property name, should be text-center
C. Value should be uppercase CENTER
D. Missing colon between property and value

Solution

  1. Step 1: Check CSS property syntax

    CSS requires a colon ':' between property and value.
  2. Step 2: Locate missing colon

    The snippet has text-align center; missing the colon after text-align.
  3. Final Answer:

    Missing colon between property and value -> Option D
  4. Quick Check:

    Property and value must be separated by colon [OK]
Hint: Always use colon : between property and value [OK]
Common Mistakes:
  • Omitting colon
  • Using wrong property name
  • Confusing semicolon placement
5. You want to align text inside a <section> so that the first line is centered, but all other lines are left aligned. Which CSS approach achieves this?
hard
A. Use text-align: left; on the section and text-align: center; on the first line with ::first-line pseudo-element
B. Use text-align: center; on the section and text-align: left; on a <p> inside
C. Use text-align: center; on the section and text-indent for the first line
D. Use text-align: center; on the section and text-align: left; on the ::first-line pseudo-element

Solution

  1. Step 1: Understand ::first-line pseudo-element

    This targets only the first line of text inside an element for styling.
  2. Step 2: Apply alignment logic

    Set the whole section text to left aligned, then override the first line to center using ::first-line.
  3. Step 3: Verify option correctness

    Use text-align: left; on the section and text-align: center; on the first line with ::first-line pseudo-element correctly applies text-align: center; to the first line and left alignment to the rest.
  4. Final Answer:

    Use text-align: left; on the section and text-align: center; on the first line with ::first-line pseudo-element -> Option A
  5. Quick Check:

    Use ::first-line to style first line separately [OK]
Hint: Use ::first-line to style first line differently [OK]
Common Mistakes:
  • Trying to set first line alignment on container only
  • Using text-indent instead of alignment
  • Applying conflicting styles on same element