Позиционирование в CSS


Блочные элементы, как прямоугольные области, идущие друг за другом. Строчные элементы располагаются сверху вниз и слева направо и при необходимости переносятся на новую строку.

Любой элемент, который находится в потоке, занимает на странице свою собственную площадь, и если надо, отталкивает от себя соседей с помощью margin.


Cвойство position - задаёт ражим позиционирования элементов.
Значение static (по умолчанию) - обычное позиционирование.
Значение relative - относительное позиционирование.

top - позволяет сместить относительно с позиционированный элемент вверх или вниз относительно его исходного положение.
left - позоляет сместить блок влево или вправо относительно исходного положения.
bottom - аналогичен top, только смещает элемент в другом направлении.
right - аналогичен left и то же смещает элемент в другом направлении.

Значение absolute свойства position задаёт элементу абсолютное позиционирование.
Свойста:

  • Выпадают из потока. Место, которое они занимали, занимают другие элементы.
  • Ширина по умолчанию зависит от содержимого.
  • Остаются на том же месте, где были если не заданы top, left, right, bottom.

По умолчанию абсолютные элементы позиционируются в системе координат, привязанной к окну браузера.
Неявная точка отсчёта - это то место, где находился элемент до того, как ему задали абсолютное позиционирование.

На практике абсолютное позиционирование часто применяется в декоративных целях, когда нужно разместить какие-либо иконки, управляющие элементы.

Фиксированное позиционирование задаёт значение fixed свойства position.
Свойства:

  • Фиксированный элемент тоже выпадает из потока.
  • Фиксированный элемент привязывается к определённой точке в окне браузера и остаётся на ней всегда, даже при прокрутке страницы.
  • Фиксированный элемент можно позиционировать с помощью свойств top,left,right,bottom, но точка всегда привязана к окну браузера.

Если в одном месте страницы оказываются несколько абсолютных блоков, то они перекрывают друг друга. С помощью свойства z-index можно управлять тем, как перекрываются блоки. По умолчанию выше тот блок, который расположен дальше в коде.