Episode 9 of 23
Absolute Position
Master position: absolute — removing elements from flow and positioning them relative to a parent container.
Absolute Position
position: absolute completely removes an element from the normal document flow and positions it relative to its nearest positioned ancestor.
How It Works
- The element is taken out of document flow — other elements act like it doesn't exist
- It is positioned relative to the nearest ancestor with a position value (relative, absolute, fixed, or sticky)
- If no positioned ancestor exists, it positions relative to the <html> element (the viewport)
- Use
top,right,bottom,leftto place it precisely
The Positioning Context
This is the most important concept to understand. An absolutely positioned element looks up the DOM tree for the first ancestor with any position value other than static:
<div class="container"> <!-- position: relative -->
<div class="badge">3</div> <!-- position: absolute -->
</div>
.container {
position: relative; /* This becomes the positioning context */
width: 200px;
height: 200px;
background: #f0f0f8;
}
.badge {
position: absolute;
top: -8px;
right: -8px;
width: 24px;
height: 24px;
background: #e74c3c;
color: white;
border-radius: 50%;
text-align: center;
line-height: 24px;
font-size: 12px;
}
The badge is positioned relative to .container — specifically 8px above and 8px to the right of its top-right corner.
Common Patterns
Centering an Element
.centered {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
Full-Width Overlay
.overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
}
Corner Positioning
| Position | CSS |
|---|---|
| Top-left | top: 0; left: 0; |
| Top-right | top: 0; right: 0; |
| Bottom-left | bottom: 0; left: 0; |
| Bottom-right | bottom: 0; right: 0; |
Common Mistakes
- No positioned parent — the element flies to the viewport edge. Always set
position: relativeon the parent. - Forgetting it's out of flow — the parent collapses because the absolute child doesn't contribute to its height.
- Using it for layout — absolute positioning is for component-level detail (badges, tooltips, overlays), not page layout.
Key Takeaways
position: absoluteremoves the element from flow completely- It positions relative to the nearest positioned ancestor
- Always set
position: relativeon the intended parent - Use
top/right/bottom/leftfor precise placement - Common uses: badges, overlays, tooltips, dropdowns