Абсолютное позиционирование означает, что элемент полностью выведен из обычного потока макета страницы. Что касается остальных элементов на странице, абсолютно позиционированного элемента просто не существует. Затем сам элемент рисуется отдельно, как бы «поверх» всего остального, в позиции, которую вы указываете с помощью атрибутов «левый», «правый», «верхний» и «нижний».
Используя позицию, указанную вами с помощью этих атрибутов, элемент затем помещается в эту позицию в своем последнем элементе-предке, который имеет атрибут позиции, отличный от статического (статический — это использование элементов позиционирования, если они не имеют указанного атрибута позиции), или тело документа (окно просмотра браузера), если такого предка не существует.
Например, если бы у меня был этот код:
<body>
<div style="position:absolute; left: 20px; top: 20px;"></div>
</body>...then the <div> would be positioned 20 px from the top of the browser viewport, and 20px from the left edge of same.
Однако, если бы я сделал что-то вроде этого:
<div id="outer" style="position:relative">
<div id="inner" style="position:absolute; left: 20px; top: 20px;"></div>
</div>...
тогда внутренний div будет расположен на 20 пикселей сверху внешнего div и на 20 пикселей от левого края того же, потому что внешний div не позиционируется с position:static, потому что мы явно установили его для использования position:relative.
Относительное позиционирование, с другой стороны, похоже на полное отсутствие позиционирования, но атрибуты левый, правый, верхний и нижний «выталкивают» элемент из его нормального расположения. Остальные элементы на странице по-прежнему располагаются так, как если бы элемент находился на своем обычном месте.
Например, если бы у меня был этот код:
<span>Span1</span>
<span>Span2</span>
<span>Span3</span>...
тогда все три элемента будут располагаться рядом друг с другом, не перекрывая друг друга.
Если я настрою второй для использования относительного позиционирования, например:
<span>Span1</span>
<span style="position: relative; left: -5px;">Span2</span>
<span>Span3</span>...
тогда Span2 будет перекрывать правую сторону Span1 на 5 пикселей. Span1 и Span3 должны располагаться точно в том же месте, что и в первом примере, оставляя зазор в 5 пикселей между правой стороной Span2 и левой стороной Span3.
Надеюсь, это немного проясняет ситуацию
Подробнее см. здесь: http://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/
Это тоже хороший вариант: http://sitepoint.refererence.sitepoint.com а>
26.03.2014