I ask this question because yesterday I had to style several divs as it's shown in this JSFiddle example.
The tricky part for me was to position <div id="content-container">
right from the <div id="vertical-menu">
but keep them top-aligned. Also I wanted the borders of <div id="content-container">
to go outside it's parent div. So after some research (I'm CSS beginner) I found out that absolute positioning may be the answer for all my questions. So indeed, as you may see I added position: absolute
to my <div id="content-container">
and along with the other styling I got what I want.
However from what I've read about absolute
positioning I left with the impression that I need a parent with relative
positioning and if such is not found I'll end up with <html>
as my parent element which for me means that the element with the absolute
positioning will be positioned at the very top-left of the page. But as the example shows, even though my parent element, nor any other element has relative positioning
I still get my element in the flow.
So what really happening? Why in this case my absolute
positioned element doesn't get outside the normal flow? I think, it's correct to say that it's interacting with static
positioned element so is there any similar behavior between absolute
positioned elements inside static
and relative
parent elements. And also - could it be there some unexpected behavior - I ask this because I use this in my real world scenario and I'm satisfied with the result even when my parent is with the default static
positioning but I wonder if this is just e lucky coincidence or just the absolute elements behave similar when they are inside either static
or relative
parents?