Позиционирование элементов. CSS

С помощью простого HTML не получится создать красивый сайт. Каждый из них имеет свой уникальный дизайн. Для его создания используется стилизация, с помощью CSS стилей.

Обычно стилизацию проходит абсолютно каждый элемент веб-страницы. К каждому применяются стили для изменения цвета, теней, рамок, шрифта.

Однако перед тем, как подобрать необходимый дизайн, элемент сначала нужно правильно расположить. Для этого используются свойства позиционирования, а именно свойство {position}.

В этой статье мы постараемся максимально подробно описать работу данного свойства, а также показать несколько наглядных примеров.

Позиционирование HTML/CSS — виды?

Свойство {position} имеет целый ряд заданных значений, которые по-разному влияют на то, как именно будет располагаться элемент относительно страницы.

Существует 4 основных типа позиционирования элементов в CSS:

  1. position: absolute;
  2. position: relative;
  3. position: fixed;
  4. position: static.

Все они могут использоваться для горизонтального и вертикального позиционирования.

Относительное позиционирование. Свойство position: relative

Позиционирование элементов

Одно из самых часто используемых значений позиционирования в CSS. Использование данного значения задает не полное, а именно относительное позиционирование относительно внешнего блока. Это означает что его границы могут изменяться с помощью свойства <padding>.

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

Кроме того, такой тип позиционирования позволяет блоку располагаться выше других элементов, перекрывая их.

Работают не все свойства перемещения по координатам. Всего их 4:

  1. <Top> — указывает расположение элемента относительно верхней части блока.
  2. <Bottom> — располагает блок относительно нижнего края.
  3. <Right> — задает расположение относительно правой границы внешнего блока.
  4. <Left> — перемещает элемент относительно левой части внешнего контейнера.

Если вы сделаете запись из 4 свойств: <top>, <bottom>, <left>, <right>, то будут работать только первые заданные свойства. То есть, <top> сработает раньше, чем <bottom>, а <left>, раньше чем <right>.

Ещё одним плюсом использования такого типа позиционирования является возможность использования свойства z-index. За счет этого относительное позиционирование в css лучше всего подходит для слоевой верстки.

Данное свойство прекрасно подойдет для позиционирования картинок, кнопок, таблиц и других блоков.

Абсолютное позиционирование. Значение <absolute>

Позиционирование элементов
<!doctype>
<html>
    <head>
        <meta charset="utf-8">
        <title>Test Page</title>
        <link rel="stylesheet" href="style.css">
    </head>
    <body>
        <div id="content">
            <div class="block">
            
            </div>
        </div>
    </body>
</html>

Позиционирование элементов
body{
    color: darkgreen;
    background: red;
    margin: 0 auto;
    height: 250vh;
}
#content{
    position: fixed;
    height: 100px;
    width: 100%;
    background: black;
}
.block{
    position: absolute;
    background: green;
    height: 50px;
    width: 50px;
    top: 40%;
    left: 10%;
}

Такой тип позиционирования блоков в css используется нередко. Он имеет несколько отличий от первого.

Он имеет не относительное а абсолютное позиционирование относительно родительского блока. Но по умолчанию он позиционируется относительно всей страницы. Это связано с тем, что все элементы по умолчанию имеют свойство {position: static}.

Название значение absolute говорит за себя, оно располагает задает элементу абсолютное позиционирование, что отличается от значения relative по целому ряду признаков.

Если не задать для его родителя свойство {position: relative или fixed}, то элемент будет расположен относительно всей страницы.

Чтобы элемент имел абсолютное позиционирование относительно какого-либо конкретного блока, то для его родителя нужно задать свойство {position: relative}.

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

Браузер воспринимает границы элемента так, как будто его не существовало вовсе. Из-за этого он не может быть перекрыт свойством z-index.

Для того, чтобы перемещать его по странице используются свойства <top>, <right>, <bottom> и <left>.

С его помощью намного проще задать позиционирование элементов по центру в css.

Пример использования абсолютного позиционирования:

Стандартное статическое позиционирование. Значение static

Это стандартное позиционирование html элементов. Оно стоит по умолчанию для всех элементов, которые расположены на странице.

Его также можно использовать для удаления позиционирования. По сути, {position: static} является отменой позиционирования.

Такой тип позиционирования не позволяет использовать свойство z-index. Он располагает элементы в таком порядке, в каком они описаны в HTML документе.

Фиксация элемента. Position: fixed

{Position: fixed} или зафиксированное позиционирование. Который чаще всего используется при создании шапки и футера страницы. Может использоваться для создания блоков с рекламой.

Позиционирование элементов

body{

color: darkgreen;

background: red;

margin: 0 auto;

height: 250vh;

}

#content{

position: fixed;

height: 100px;

width: 100%;

background: black;

}

.block{

position: absolute;

background: green;

height: 50px;

width: 50px;

top: 40%;

left: 10%;

}

body{
    color: darkgreen;
    background: red;
    margin: 0 auto;
    height: 250vh;
}
#content{
    position: fixed;
    height: 100px;
    width: 100%;
    background: black;
}
.block{
    position: absolute;
    background: green;
    height: 50px;
    width: 50px;
    top: 40%;
    left: 10%;
}

Суть его заключается в том, что он закрепляет элемент в определенной части окна, не позволяя ему исчезнуть с экрана. То есть, если вы будете прокручивать страницу, то зафиксированный элемент всегда будет на экране монитора.

Для таких элементов создается отдельный поток элементов. В первом потоке содержатся элементы, которые не зафиксированы на странице. Во втором — контент имеющий свойство {position: fixed}.

Position: inherit и position: initial.

Первое значение задает наследственное свойство. Элемент будет иметь такое же позиционирование, как и его блок-родитель.

Второе значение задает стандартное позиционирование. По сути, то же самое что и {position: static}.

Свойства перемещения

Давайте подробно рассмотрим свойства отвечающие за передвижение элементов. Они распространяются на все элементы не имеющие свойство {position: static}.

Как мы уже говорили: существует всего 4 свойства — <top>, <right>, <bottom>, <left>. Все они могут принимать разные значения.

Первое значение — <auto>, которое по умолчанию равно 0. Второе — точное значение, может измеряться в процентах, rem, em, vh и других величинах.

Заключение

Надеемся что данная статья была для вас полезна. Теперь вы узнали все аспекты работы свойства position, а также знаете как его применять.

Для практики:

  1. Создайте шапку, которая будет закреплена и не будет теряться при перемещении скролла.
  2. Создайте футер, который не будет исчезать при прокрутке страницы.

В центре создайте 3 блока, которые будут иметь абсолютное позиционирование. Можете эти блоки для вставки картинок.

Теги:
0

Оставить своё мнение

Ваш e-mail не будет опубликован. Обязательные поля помечены *