Position can be of four types:
static
relative
fixed
absolute
A very good article can be found here:
static is the default. An element with position: static; is not positioned in any special way. A static element is said to be not
positioned and an element with its position set to anything else is
said to be positioned.
relative behaves the same as static unless you add some extra properties.
</div>
<div class="relative2">
Setting the top, right, bottom, and left properties of a
relatively-positioned element will cause it to be adjusted away from
its normal position. Other content will not be adjusted to fit into
any gap left by the element.
A fixed element is positioned relative to the viewport, which
means it always stays in the same place even if the page is scrolled.
As with relative, the top, right, bottom, and left properties are
used.
absolute behaves like fixed except relative to the nearest positioned ancestor instead of relative to the viewport. If an
absolutely-positioned element has no positioned ancestors, it uses the
document body, and still moves along with page scrolling. A
"positioned" element is one whose position is anything except static.
An example can be:
.relative {
position: relative;
width: 600px;
height: 400px;
}
.absolute {
position: absolute;
top: 120px;
right: 0;
width: 300px;
height: 200px;
}