I have nothing to add to these great answers, but here is an article that helped me understand the concept. http://alistapart.com/article/css-positioning-101
EDIT:
This article discusses that a div with an absolute position is positioned in the internal grid of its closest ancestor (parent, grandfather, etc.), which is fixed, relative or absolute. If not, this applies to the html document, but note that it still does not behave as it was fixed. It also covers the key differences between the three types of positions, as well as the type of static position.
static is the default position at which it does not create grids for child absolute positioned divs. You cannot use css properties top left right or bottom .
relative - creates a grid for children (children, grandchildren, etc.) of absolute positioned divs. You can use the top, left, right and bottom, but they move its βrelativeβ to where it was before. When using the top, left, right, and bottom other elements, they still move where they were before.
absolute - creates a grid for children (children, grandchildren, etc.) of absolute positioned divs. You can use the top, left, right and bottom, but they move it relative to the grid of the nearest ancestor (parent, grandmother, etc.). Remember that meshes are created by fixed, absolute, and relative elements. When using the top, left, right, and bottom elements, the element exits the document stream. (This means that other objects pass through it.)
fixed - creates a grid for child absolute positioned divs. You can use the top, left, right and bottom, but they move it relative to the browser. When using the top, left, right and bottom margins, it leaves the document stream. (This means that other objects pass through it.)