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
Recall & Review
beginner
What is the ::after pseudo-element in CSS?
The ::after pseudo-element lets you insert content after an element's actual content without changing the HTML. It's like adding a note after a paragraph using CSS.
Click to reveal answer
beginner
How do you add text using the ::after pseudo-element?
You use the content property inside the ::after selector. For example: p::after { content: ' - thank you!'; } adds ' - thank you!' after every paragraph.
Click to reveal answer
intermediate
Can the ::after pseudo-element add images or icons?
Yes! You can add images by using content: url('image.png'); or use Unicode characters like emojis. This lets you decorate elements without extra HTML.
Click to reveal answer
intermediate
Why is it important to set display property with ::after?
By default, ::after is inline. To control layout or add block elements, set display to block or inline-block. This helps with spacing and positioning.
Click to reveal answer
beginner
What is a common use case for ::after in web design?
A common use is adding decorative icons, clearing floats with content: ''; and display: block;, or adding quotes after text. It helps keep HTML clean and styles flexible.
Click to reveal answer
Which CSS property is required to make ::after show content?
Adisplay
Bcontent
Cposition
Dvisibility
✗ Incorrect
The content property defines what the ::after pseudo-element inserts after the element.
What is the correct syntax to add text after all p elements?
Ap:after { content: 'text'; }
Bp-after { content: 'text'; }
Cp::after { content: 'text'; }
Dp.after { content: 'text'; }
✗ Incorrect
The double colon ::after is the modern syntax for pseudo-elements.
Can ::after add content without modifying HTML?
AYes, it adds content purely with CSS
BNo, HTML must be changed
COnly with JavaScript
DOnly in inline styles
✗ Incorrect
::after inserts content visually using CSS only, no HTML changes needed.
What happens if you omit the content property in ::after?
ADefault text appears
BBrowser error
CElement disappears
DNothing is shown
✗ Incorrect
Without content, the ::after pseudo-element does not display anything.
Which display value helps ::after behave like a block element?
Ablock
Bnone
Cinline
Dflex
✗ Incorrect
Setting display: block; makes ::after behave like a block, taking full width.
Explain how the ::after pseudo-element works and give an example of adding text after a paragraph.
Think about adding something after an element without changing HTML.
You got /3 concepts.
Describe why setting the display property is important when using ::after and how it affects layout.
Consider how inline vs block elements behave visually.
You got /3 concepts.
Practice
(1/5)
1. What does the CSS ::after pseudo-element do?
easy
A. Adds content after an element without changing the HTML
B. Removes the element from the page
C. Changes the background color of an element
D. Makes the element invisible
Solution
Step 1: Understand the purpose of ::after
The ::after pseudo-element inserts content after the selected element in the page layout without modifying the HTML structure.
Step 2: Compare with other options
Options A, C, and D describe different CSS effects unrelated to ::after.
Final Answer:
Adds content after an element without changing the HTML -> Option A
Quick Check:
::after adds content after element [OK]
Hint: Remember ::after adds content visually, not in HTML [OK]
Common Mistakes:
Thinking it changes the HTML structure
Confusing it with visibility or color changes
Forgetting it needs content property to show
2. Which CSS rule correctly uses ::after to add a red asterisk after a paragraph?
easy
A. p::after { content: '*'; color: red; }
B. p:after { content: '*'; color: red; }
C. p::after { text: '*'; color: red; }
D. p::after { content: '*'; font-color: red; }
Solution
Step 1: Check correct pseudo-element syntax
The modern and correct syntax for the after pseudo-element is ::after, not :after.
Step 2: Verify property names
The property to add text is content, and color is set with color. Options C and D use incorrect properties (text and font-color).
Final Answer:
p::after { content: '*'; color: red; } -> Option A
Quick Check:
Use ::after with content and color [OK]
Hint: Use double colons and 'content' property for ::after [OK]
Common Mistakes:
Using single colon instead of double (::after vs :after)
Using wrong property like 'text' instead of 'content'
Using 'font-color' instead of 'color'
3. What will be the visual output of this CSS?
h1::after { content: ' [check]'; color: green; }
Given HTML: <h1>Task Complete</h1>
medium
A. [check] Task Complete (green check mark before text)
B. Task Complete [check] (green check mark after text)
C. Task Complete (no change visible)
D. Task Complete [check] (check mark in default color)
Solution
Step 1: Understand ::after content insertion
The ::after adds the string ' [check]' after the h1 text, so the check mark appears after "Task Complete".
Step 2: Check color styling
The color property applies to the inserted content, so the check mark will be green.
Final Answer:
Task Complete [check] (green check mark after text) -> Option B
Quick Check:
::after adds green check after text [OK]
Hint: Content appears after element text with given styles [OK]
Common Mistakes:
Thinking content appears before text
Ignoring color styling on inserted content
Expecting no visible change without HTML change
4. Identify the error in this CSS code:
div::after { content: foo; }
medium
A. content: foo; is valid and will not show anything
B. Missing semicolon after content property
C. ::after cannot be used on div elements
D. content must be a string or url, not 'foo'
Solution
Step 1: Check valid values for content
The content property requires a string (in quotes), url(), or special keywords like '' (empty string). The value foo is invalid here.
Step 2: Verify usage of ::after on div
The ::after pseudo-element can be used on any element, including div.
Final Answer:
content must be a string or url, not 'foo' -> Option D
Quick Check:
content needs string or url, not 'foo' [OK]
Hint: Use quotes for content, 'foo' is invalid [OK]
Common Mistakes:
Using 'foo' instead of empty string or valid content
Thinking ::after can't be on div
Missing semicolon (not the main error here)
5. You want to add a decorative quote mark after every blockquote without changing HTML. Which CSS snippet correctly does this and ensures accessibility?