Bird
Raised Fist0
CSSmarkup~30 mins

Position absolute in CSS - Mini Project: Build & Apply

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
Position Absolute with CSS
📖 Scenario: You are creating a simple webpage layout where a small box should appear at the top-right corner inside a larger container.
🎯 Goal: Build a webpage with a container box and a smaller box positioned absolutely at the top-right corner inside the container.
📋 What You'll Learn
Use a container div with a fixed size and background color.
Create a smaller div inside the container.
Use position: relative on the container.
Use position: absolute on the smaller box.
Position the smaller box at the top-right corner of the container using CSS.
💡 Why This Matters
🌍 Real World
Positioning elements absolutely inside containers is common in web design for badges, notifications, or floating buttons.
💼 Career
Understanding CSS positioning is essential for front-end developers to create precise and responsive layouts.
Progress0 / 4 steps
1
Create the HTML structure with container and box
Write the HTML code to create a div with class container and inside it a div with class box.
CSS
Hint

Use nested div elements with the exact class names container and box.

2
Add CSS for container size and relative positioning
Add CSS to set the .container to have width: 300px, height: 200px, background-color: lightgray, and position: relative.
CSS
Hint

Set the container's size and background color, and add position: relative so the absolute positioning inside works.

3
Add CSS for the box with absolute positioning
Add CSS to set the .box to have width: 50px, height: 50px, background-color: steelblue, position: absolute, top: 0, and right: 0.
CSS
Hint

Use position: absolute and set top and right to zero to place the box in the top-right corner.

4
Add accessibility and responsive design
Add aria-label="Container box" to the div with class container and add a media query to reduce the container width to 100% on screens smaller than 400px.
CSS
Hint

Add the aria-label attribute for accessibility and use a media query to make the container width responsive on small screens.

Practice

(1/5)
1. What does position: absolute; do to an element in CSS?
easy
A. It makes the element stay in the normal page flow.
B. It places the element exactly where you want inside its nearest positioned ancestor.
C. It hides the element from the page.
D. It makes the element fixed to the browser window.

Solution

  1. Step 1: Understand position absolute behavior

    Position absolute removes the element from normal flow and places it relative to the nearest positioned ancestor.
  2. Step 2: Compare with other position types

    Unlike static or fixed, absolute positions relative to a parent with position set, not the viewport or normal flow.
  3. Final Answer:

    It places the element exactly where you want inside its nearest positioned ancestor. -> Option B
  4. Quick Check:

    Position absolute = relative to nearest positioned parent [OK]
Hint: Absolute means position relative to nearest positioned parent [OK]
Common Mistakes:
  • Thinking absolute keeps element in normal flow
  • Confusing absolute with fixed position
  • Assuming absolute always positions relative to viewport
2. Which CSS snippet correctly positions an element 20px from the top and 30px from the left using absolute positioning?
easy
A. position: fixed; top: 20px; left: 30px;
B. position: relative; top: 20px; left: 30px;
C. position: absolute; top: 20px; left: 30px;
D. position: static; top: 20px; left: 30px;

Solution

  1. Step 1: Identify correct position property

    Only position: absolute; allows exact placement with top and left.
  2. Step 2: Check the offset properties

    Using top: 20px; and left: 30px; moves the element 20px down and 30px right from its positioned ancestor.
  3. Final Answer:

    position: absolute; top: 20px; left: 30px; -> Option C
  4. Quick Check:

    Absolute + top/left = exact position [OK]
Hint: Use position absolute with top and left for exact placement [OK]
Common Mistakes:
  • Using position relative instead of absolute
  • Using position static which ignores top/left
  • Confusing fixed with absolute positioning
3. Given this HTML and CSS, where will the red box appear?
<div class='container'>
  <div class='box'>Red Box</div>
</div>

.container {
  position: relative;
  width: 200px;
  height: 200px;
  background: lightgray;
}
.box {
  position: absolute;
  top: 50px;
  right: 20px;
  width: 100px;
  height: 50px;
  background: red;
  color: white;
}
medium
A. Inside the container, 50px from top and 20px from right edge
B. At the top-left corner of the page
C. Centered inside the container
D. Outside the container, 50px from top and 20px from right edge

Solution

  1. Step 1: Identify container positioning

    The container has position: relative;, so it becomes the reference for absolute children.
  2. Step 2: Locate the box using top and right

    The box is positioned 50px from the top and 20px from the right inside the container.
  3. Final Answer:

    Inside the container, 50px from top and 20px from right edge -> Option A
  4. Quick Check:

    Absolute inside relative = positioned inside container [OK]
Hint: Absolute inside relative positions relative to container [OK]
Common Mistakes:
  • Thinking absolute positions relative to page if parent is relative
  • Ignoring right property and assuming left positioning
  • Assuming box is centered without explicit centering
4. Why does this absolutely positioned element not move 10px from the top as expected?
.child {
  position: absolute;
  top: 10px;
}
.parent {
  width: 300px;
  height: 300px;
  background: blue;
}

The HTML is:
<div class='parent'>
  <div class='child'>Hello</div>
</div>
medium
A. Because the child element must have position: relative instead
B. Because top: 10px is invalid without left or right
C. Because absolute positioning requires display: block on parent
D. Because the parent has no position set, so child positions relative to the page

Solution

  1. Step 1: Check parent positioning

    The parent has no position set, so it defaults to static, which does not create a positioning context.
  2. Step 2: Understand absolute positioning reference

    The child with position absolute will position relative to the nearest positioned ancestor or the page if none exists.
  3. Final Answer:

    Because the parent has no position set, so child positions relative to the page -> Option D
  4. Quick Check:

    Absolute needs positioned parent to position inside it [OK]
Hint: Set parent position to relative for absolute child positioning [OK]
Common Mistakes:
  • Assuming absolute always positions inside parent
  • Thinking top needs left or right to work
  • Believing display property affects absolute positioning
5. You want to place a tooltip box exactly 10px above a button inside a container. The container has position: relative;. Which CSS for the tooltip ensures it appears above the button using absolute positioning?
.tooltip {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-10px);
  background: black;
  color: white;
  padding: 5px;
  border-radius: 3px;
}
hard
A. This CSS places the tooltip 10px above the button, centered horizontally.
B. This CSS places the tooltip below the button, offset by 10px.
C. This CSS places the tooltip inside the button, overlapping text.
D. This CSS ignores the container's position and places tooltip at page top.

Solution

  1. Step 1: Understand bottom: 100% usage

    Setting bottom: 100% places the tooltip exactly at the top edge of the button.
  2. Step 2: Apply transform for offset and centering

    translateX(-50%) centers horizontally, and translateY(-10px) moves it 10px further up.
  3. Final Answer:

    This CSS places the tooltip 10px above the button, centered horizontally. -> Option A
  4. Quick Check:

    bottom 100% + translateY(-10px) = 10px above [OK]
Hint: Use bottom 100% plus translateY(-10px) to move above element [OK]
Common Mistakes:
  • Using top instead of bottom for positioning above
  • Not centering with translateX(-50%)
  • Forgetting container must be relative