В чем разница между относительным положением и абсолютным положением и когда использовать какой из css?
Позиция Relative vs Position Absolute?
Ответ 1
Абсолютное позиционирование CSS
 position: absolute;
Абсолютное позиционирование легче всего понять. Вы начинаете с свойства CSS position:
position: absolute;
Это говорит браузеру, что все, что будет размещено, должно быть удалено из обычного потока документа и будет размещено в точном месте на странице. Это не повлияет на то, как элементы, находящиеся перед ним или после него в HTML, размещены на веб-странице, тем не менее, он будет подчинен ему позиционированию родителей, если вы не отмените его.
Если вы хотите поместить элемент в 10 пикселей из верхней части окна документа, вы должны использовать сдвиг top в position там с absolute позиционированием:
position: absolute;
top: 10px;
Этот элемент всегда будет отображать 10px в верхней части страницы независимо от того, какой контент проходит через, над или над элементом (визуально).
Четыре свойства позиционирования:
-  top
-  right
-  bottom
-  left
Чтобы использовать их, вы должны думать о них как о смещенных свойствах. Другими словами, элемент, расположенный right: 2px, не перемещается вправо 2px. Его правая сторона смещена с правой стороны окна (или его положение, переопределяющего родителя) на 2px. То же самое верно для остальных трех.
Относительное позиционирование
 position: relative;
Относительное позиционирование использует те же четыре свойства позиционирования, что и позиционирование absolute. Но вместо того, чтобы основывать положение элемента на порте просмотра браузера, он начинается с того места, где будет элемент, если он все еще находится в нормальном потоке.
Например, если у вас есть три абзаца на вашей веб-странице, а у третьего есть стиль position: relative, размещенный на нем, его позиция будет смещена на основе текущего местоположения - не с исходных сторон порта представления.
Пункт 1.
Пункт 2.
Пункт 3. В приведенном выше примере третий абзац будет располагаться3em с левой стороны элемента контейнера, но все равно будет находиться ниже первых двух абзацев. Он остался бы в нормальном потоке документа и просто слегка смещен. Если вы изменили его на position: absolute;, все, что после него отобразилось бы поверх него, потому что оно больше не будет в нормальном потоке документа.
Примечания:
-  по умолчанию widthэлемента, который абсолютно позиционирован, является шириной содержимого внутри него, в отличие от элемента, который относительно расположен, где по умолчаниюwidthнаходится100%пространства, которое он может заполнить.
-  У вас могут быть элементы, которые перекрываются с абсолютно позиционируемыми элементами, тогда как вы не можете делать это с относительно позиционированными элементами (изначально без использования отрицательных полей/позиционирования) 
лоты вытащили из: этот ресурс
Ответ 2
Оба "относительного" и "абсолютного" позиционирования действительно относительны, только с разной структурой. "Абсолютное" позиционирование относится к положению другого охватывающего элемента. "Относительное" позиционирование относится к положению, которое сам элемент имел бы без позиционирования.
Это зависит от ваших потребностей и целей, которые вы используете. "Относительное" положение подходит, если вы хотите вытеснить элемент из положения, которое он мог бы иметь в потоке элементов, например. чтобы некоторые символы отображались в надстрочном положении. "Абсолютное" позиционирование подходит для размещения элемента в некоторой системе координат, заданной другим элементом, например. для "надпечатки" изображения с некоторым текстом.
В качестве специального, использовать "относительное" позиционирование, без смещения (только настройки position: relative), чтобы сделать элемент системы отсчета, так что вы можете использовать "абсолютный" позиционирование для элементов, которые находятся внутри него (в разметке).
Ответ 3
Относительное положение:
Если вы укажете позицию: относительная, то вы можете использовать верхнюю или нижнюю часть, а также влево или вправо, чтобы перемещать элемент относительно того места, где оно обычно происходит в документе.
Абсолютная позиция:
Когда вы указываете позицию: абсолютный, элемент удаляется из документа и помещается именно там, где вы говорите ему, чтобы идти.
Вот хороший учебник http://www.barelyfitz.com/screencast/html-training/css/positioning/ с образцовым использованием обеих позиций с соответствующим абсолютным и относительным позиционированием.
Ответ 4
Еще одно замечание: если вы хотите, чтобы абсолютный элемент ограничивался родительским элементом, вам нужно установить относительную позицию родительского элемента. Это будет содержать дочерний элемент, содержащийся в родительском элементе, и он не будет "относительным" для всего окна.
Я написал сообщение , в котором приведен простой пример, который создает следующее влияние:
 
У этого есть зеленый div, который абсолютно расположен до нижней части родительского желтого div.
1 http://blog.troygrosfield.com/2013/02/11/working-with-css-positions-creating-a-simple-progress-bar/
Ответ 5
Относительно: Относительно его текущей позиции, но можно перемещать. Или ОТНОСИТЕЛЬНЫЙ позиционированный элемент позиционируется относительно ITSELF.
Абсолютный: Позиционированный элемент ABSOLUTE позиционируется относительно IT CLOSEST POSITIONED PARENT. если он присутствует, то он работает как фиксированный..... относительно окна.
<div style="position:relative"> <!--2nd parent div-->
    <div>   <!--1st parent div-->
        <div style="position:absolute;left:10px;....."> <!--Middle div-->
          Md. Arif
       </div>
    </div>
</div>
Здесь вторая родительская позиция div относительна, поэтому средний div изменит ее положение относительно второго родителя div. Если 1-я родительская позиция div будет относительной, то средний div изменит ее положение относительно 1-го родителя div. Подробности
Ответ 6
Полагая ответ, так как моя репутация достаточно, чтобы комментировать. Но не смотрите на это как на ответ, просто дополнительная информация, как и я, имела некоторые проблемы с нижним колонтитулом и позиционированием.
При настройке страницы, чтобы нижний колонтитул всегда находился внизу, с абсолютным положением и основным контейнером/оберткой с относительным положением.
Затем я обнаружил некоторые проблемы с моим текстовым контентом и меню внутри одного и того же содержимого (белая часть страницы между верхним и нижним колонтитулом) при установке их в абсолютный нижний колонтитул больше не остается.
Пропущение - это, как вы говорите, сложная тема.
Мое решение, которое я хотел в "абсолютном" позитиве на моей веб-странице, а не быть отодвинутым в сторону, когда в примере, открывающем раскрывающееся меню, должен был фактически дать ему относительный постулат и поставить его ниже мое выпадающее меню. (35em - это высота моего выпадающего меню, когда он полностью расширен)
Затем, Top: -35em, для содержимого, которое ранее было сдвинуто в сторону. А затем добавьте margin-bottom: -35em. Таким образом, контент "ниже" моего выпадающего меню, но визуально он бок о бок с моим выпадающим меню! И белое пространство ниже до нижнего колонтитула, имеет только 10-кратный запас, так как это было до начала игры с этим. Поэтому мое решение было таким:
 html, body {
    margin:0;
    padding:0;
    height:100%;
}
h1 {
    margin:0;
}
    #webpage {
    position:relative;
    min-height:100%;
    margin:0;
    overflow:auto;
}
     #header {
    height:5em;
    width:100%;
    padding:0;
    margin:0;
}
     #text {
    position:relative;
   margin-bottom:-32em;
    padding-top:2em;
    padding-right:2em;
    padding-bottom:10em;
    background-repeat:no-repeat;
    width:70%;
    padding-left:auto;
    margin-left:auto;
    margin-right:auto;
    right:10em;
    float:right;
    top:-32em;
      }
#dropdown {
position:absolute;
    left:0;
    width:20%;
    clear:both;
    display:block;
    position:relative;
    top:1em;
    height:35em;
}
    #footer {
    position:absolute;
    width:100%;
    right:0;
    bottom:0;
    height:5em;
    margin:0;
     margin-top:5em;
}
Я вижу, что на ваш вопрос ответили хорошо, но после многих неприятностей я нашел, что это очень хорошее решение, и способ лучше понять, как работает позиционирование. Когда я размещаю свой текстовый контент, под раскрывающимся меню, он не подталкивает мой текст в сторону. Если бы я изменил текст на абсолютный, нижний колонтитул не остался на месте. Поскольку я могу поверить, что это проблема для большего количества людей, чем я, я добавляю это здесь. Что на самом деле происходит, я помещаю текст, 35ems, ниже моего падения.
Затем я визуально поместил его рядом с eachother, с относительным положением и сверху: -35em;, и выложите огромное пространство внизу, с краем: -35em;
отрицательные значения иногда недооцениваются, очень хорошие функциональные возможности, когда лучше понимать эти позиции!
Как правило, фиксированная позиция также казалась логической для моего нижнего колонтитула, но я действительно хочу, чтобы нижний колонтитул находился ниже области просмотра, если текст или содержимое больше, чем область просмотра. И оставаться внизу, если на странице мало контента.
Этот setupp исправил это очень хорошо и не забыл использовать 'em', а не 'px' для более гибкого/динамического макета страницы!:)
(могут быть лучшие решения, но это работает для меня как для перекрестных платформ, так и для устройств).
Ответ 7
Marco Pellicciotta: положение элемента внутри другого элемента может быть относительным или абсолютным, относительно элемента внутри.
Если вам нужно поместить элемент в точку зрения браузера, лучше всего использовать позицию: fixed
