Правильное расположение элементов на веб-страницах является необходимостью для хорошего дизайна. В CSS есть несколько методов, которые вы можете использовать для позиционирования элементов.
В этом разделе мы разберем основные методы позиционирования.
Позиционирование static
Статически позиционированный элемент всегда позиционируется в соответствии с обычным потоком страницы. HTML-элементы по умолчанию расположены статически. На статические элементы не влияют свойства top
, bottom
, left
, right
, и z-index
.
.box {
padding: 20px;
background: #7dc765;
}
Позиционирование relative
Относительно позиционированный элемент позиционируется относительно его нормального положения.
В схеме относительного позиционирования положение ячейки элемента рассчитывается в соответствии с нормальным потоком. Затем поле смещается из этого нормального положения в соответствии со свойствами — top
или bottom
и/или left
или right
.
.box {
position: relative;
left: 100px;
}
Относительно позиционированный элемент может перемещаться и перекрывать другие элементы, но он сохраняет пространство, изначально зарезервированное для него, в обычном потоке.
Позиционирование absolute
Абсолютно позиционированный элемент позиционируется относительно первого родительского элемента, который имеет position
, отличный от static
. Если такой элемент не найден, он будет расположен на странице относительно левого верхнего угла окна браузера. Смещения бокса можно указать с помощью одного или нескольких свойств top
, right
, bottom
и left
.
Абсолютно расположенные элементы полностью исключаются из нормального потока и, таким образом, не занимают места при размещении родственных элементов. Однако такой элемент может перекрывать другие элементы в зависимости от значения свойства z-index
. Кроме того, абсолютно позиционированный элемент может иметь поля margins, и они не разрушаются вместе с другими полями.
.box {
position: absolute;
top: 200px;
left: 100px;
}
Позиционирование fixed
Фиксированное позиционирование является подвидом абсолютного позиционирования.
Единственное отличие состоит в том, что элемент фиксируется относительно области просмотра браузера viewport и не перемещается при прокрутке.
.box {
position: fixed;
top: 200px;
left: 100px;
}
В случае типа print media фиксировано позиционированный элемент отображается на каждой странице и фиксируется по отношению к блоку страницы (даже в режиме предварительного просмотра). IE7 и IE8 поддерживают фиксированное значение, только если указано <!DOCTYPE>
.