position в действии

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

.container {
  position: relative;
}
nav {
  position: absolute;
  left: 0px;
  width: 200px;
}
section {
  /* position is static by default */
  margin-left: 200px;
}
footer {
  position: fixed;
  bottom: 0;
  left: 0;
  height: 70px;
  background-color: white;
  width: 100%;
}
body {
  margin-bottom: 120px;
}
<div class="container">
<section>

Использование margin-left для sections освобождает место для размещения nav. В противном случае элементы со значением absolute и static перекрылись бы.

</section>
<section>

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet, nulla et dictum interdum, nisi lorem egestas odio, vitae scelerisque enim ligula venenatis dolor. Maecenas nisl est, ultrices nec congue eget, auctor vitae massa. Fusce luctus vestibulum augue ut aliquet. Mauris ante ligula, facilisis sed ornare eu, lobortis in odio. Praesent convallis urna a lacus interdum ut hendrerit risus congue. Nunc sagittis dictum nisi, sed ullamcorper ipsum dignissim ac. In at libero sed nunc venenatis imperdiet sed ornare turpis. Donec vitae dui eget tellus gravida venenatis. Integer fringilla congue eros non fermentum. Sed dapibus pulvinar nibh tempor porta. Cras ac leo purus. Mauris quis diam velit.

</section>
<section>

Обратите внимание на то, что произойдет, если вы измените размер вашего браузера. Это прекрасно работает!

</section>
<footer>

Если вы используете фиксированные header или footer, убедитесь, что есть свободное место для них! Я установил margin-bottom для body.

</footer>

Этот пример работает, потому что высота контейнера(container) больше, чем высота навигации(nav). Если бы это было не так, то окно навигации вышло бы за пределы контейнера, в котором сейчас находится. На ближайших страницах мы обсудим другие методы компоновки, которые имеют различные плюсы и минусы.

  • Creative Commons License