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
Positioning an Element with CSS Relative Position
📖 Scenario: You are creating a simple webpage with a box that you want to move slightly from its normal place without affecting other elements.
🎯 Goal: Build a webpage with a blue square box that is shifted 20 pixels down and 30 pixels to the right using CSS position: relative.
📋 What You'll Learn
Create an HTML structure with a container and a box inside it
Add CSS to style the box with a fixed size and background color
Use position: relative on the box
Move the box 20 pixels down and 30 pixels right using top and left properties
💡 Why This Matters
🌍 Real World
Relative positioning is useful when you want to nudge elements slightly without breaking the layout around them, like moving a button or label a bit for better alignment.
💼 Career
Understanding CSS positioning is essential for front-end web development jobs, as it helps create visually appealing and well-structured webpages.
Progress0 / 4 steps
1
Create the HTML structure with a container and a box
Write the HTML code to create a <div> with class container and inside it another <div> with class box.
CSS
Hint
Use <div class="container"> and inside it <div class="box">.
2
Add CSS to style the box with size and background color
Add a <style> block inside the <head> and write CSS to make the .box 100px wide, 100px tall, and with a blue background color.
CSS
Hint
Inside <style>, add CSS for .box with width, height, and background-color.
3
Add position: relative to the box
In the CSS for .box, add the line position: relative; to enable relative positioning.
CSS
Hint
Add position: relative; inside the .box CSS block.
4
Move the box 20px down and 30px right using top and left
In the CSS for .box, add top: 20px; and left: 30px; to shift the box down by 20 pixels and right by 30 pixels.
CSS
Hint
Add top: 20px; and left: 30px; inside the .box CSS block to move it.
Practice
(1/5)
1. What does position: relative; do to an HTML element?
easy
A. Positions the element absolutely at the top-left corner of the page.
B. Removes the element from the page flow completely.
C. Fixes the element to the viewport so it doesn't move when scrolling.
D. Moves the element relative to its normal position without affecting other elements.
Solution
Step 1: Understand position relative behavior
Position relative moves the element from where it normally is but keeps its space reserved in the layout.
Step 2: Compare with other position types
Unlike absolute or fixed, relative does not remove the element from the document flow.
Final Answer:
Moves the element relative to its normal position without affecting other elements. -> Option D
Quick Check:
Relative = moves element but keeps space [OK]
Hint: Relative moves element but keeps space in layout [OK]
Common Mistakes:
Thinking relative removes element from flow
Confusing relative with absolute or fixed
Assuming relative positions element at page corner
2. Which of the following is the correct CSS syntax to move an element 10px down using relative positioning?
easy
A. position: relative; bottom: 10px;
B. position: relative; top: 10px;
C. position: absolute; top: 10px;
D. position: fixed; left: 10px;
Solution
Step 1: Identify correct property for moving down
Using top: 10px; moves the element 10px down relative to its normal position.
Step 2: Confirm position type
Position must be relative to use top for relative movement.
Final Answer:
position: relative; top: 10px; -> Option B
Quick Check:
Relative + top moves element down [OK]
Hint: Use top with relative to move down [OK]
Common Mistakes:
Using bottom to move element down (it moves up)
Mixing position absolute or fixed instead of relative
Using left or right instead of top for vertical movement
What will be the visual position of the div compared to its normal spot?
medium
A. Shifted 20px right and 10px down from its normal position.
B. Shifted 20px left and 10px up from its normal position.
C. No movement; stays in normal position.
D. Shifted 20px right and 10px up from its normal position.
Solution
Step 1: Understand left and top with relative
Left: 20px moves the element 20px to the right; top: 10px moves it 10px down.
Step 2: Combine movements
Both together shift the element diagonally right and down from its original spot.
Final Answer:
Shifted 20px right and 10px down from its normal position. -> Option A
Quick Check:
Left positive = right, top positive = down [OK]
Hint: Positive left moves right; positive top moves down [OK]
Common Mistakes:
Thinking left:20px moves left instead of right
Confusing top positive as moving up
Ignoring combined effect of left and top
4. This CSS code is intended to move a p element 15px down, but it doesn't work as expected:
p {
position: relative;
bottom: 15px;
}
What is the problem?
medium
A. bottom: 15px; moves the element up, not down.
B. The position property should be absolute to move down.
C. The value should be negative like bottom: -15px; to move down.
D. The element needs display: block; to move.
Solution
Step 1: Understand bottom property with relative
Positive bottom: 15px; moves the element up by 15px relative to its normal position.
Step 2: Compare intention vs actual behavior
Intended to move down, but positive bottom moves up instead.
Final Answer:
bottom: 15px; moves the element up, not down. -> Option A
Quick Check:
Bottom positive moves up [OK]
Hint: Positive bottom moves element up, negative moves down [OK]
Common Mistakes:
Confusing bottom positive as moving down
Thinking position must be absolute to move
Believing display affects position movement
5. You want to layer two boxes so the second box overlaps the first by 30px to the right and 20px down, but keep the page layout unchanged. Which CSS is best?
hard
A. First box: position: static; Second box: position: relative; right: 30px; bottom: 20px;
B. First box: position: absolute; Second box: position: absolute; left: 30px; top: 20px;
C. First box: position: relative; Second box: position: relative; left: 30px; top: 20px;
D. First box: position: relative; Second box: position: absolute; left: 30px; top: 20px;
Solution
Step 1: Understand layering with relative positioning
Using position: relative; on both keeps layout space but allows moving the second box over the first.
Step 2: Apply left and top offsets to second box
Setting left: 30px; and top: 20px; moves the second box right and down overlapping the first.
Step 3: Avoid absolute to keep layout unchanged
Absolute removes element from flow, changing layout. Relative keeps layout intact.
Final Answer:
First box: position: relative; Second box: position: relative; left: 30px; top: 20px; -> Option C
Quick Check:
Relative + offsets overlap without layout shift [OK]
Hint: Use relative + left/top to overlap without layout change [OK]
Common Mistakes:
Using absolute removes element from flow, breaks layout
Using right/bottom offsets incorrectly for desired direction
Not setting position relative on first box for layering context