Пазіцыянаванне адносна бацькоўскага элемента ў CSS

Калі элементу зададзены relative, а яго нашчадку - absolute, то гэты нашчадак будзе пазіцыянавацца адносна свайго бацькоўскага элемента, а не адносна акна браўзера.

Як правіла, у такім выпадку бацькоўскаму элементу паказваюць relative без зрухаў. У гэтым выпадку з гэтым бацькоўскім элементам нічога не адбываецца, але ўсе яго нашчадкі цяпер будуць пазіцыянавацца адносна яго.

Давайце паглядзім на прыкладах.

Прыклад

Для пачатку давайце проста зробім блок-бацьку і блок-нашчадак без пазіцыянавання:

html<div id="parent">
  <div id="child"></div>
</div>
css#parent {
  width: 500px;
  height: 300px;
  margin: 0 auto;
  border: 1px solid red;
}
#child {
  width: 200px;
  height: 200px;
  border: 1px solid green;
}

Результат:

Прыклад

Давайце цяпер абсалютна спазіцыянуем зялёны блок. Так як бацькоўскаму элементу не паказаны relative, то нашчадак будзе пазіцыянавацца адносна акна браўзера:

html<div id="parent">
  <div id="child"></div>
</div>
css#parent {
  width: 500px;
  height: 300px;
  margin: 0 auto;
  border: 1px solid red;
}
#child {
  position: absolute;
  top: 20px;
  left: 20px;
  
  width: 200px;
  height: 200px;
  border: 1px solid green;
}

Результат:

Прыклад

Пакажам цяпер бацькоўскаму элементу relative. У гэтым выпадку нашчадак будзе пазіцыянавацца адносна свайго бацькоўскага элемента:

html<div id="parent">
  <div id="child"></div>
</div>
css#parent {
  position: relative;
  width: 500px;
  height: 300px;
  margin: 0 auto;
  border: 1px solid red;
}
#child {
  position: absolute;
  top: 20px;
  left: 20px;
  
  width: 200px;
  height: 200px;
  border: 1px solid green;
}

Результат:

Практычныя задачы

У наступных задачах асноўны блок стаіць па цэнтры з дапамогай margin у значэнні auto, а астатнія пазіцыянуюцца адносна яго з дапамогай уласцівасці position.

Задание 1
Задание 2
Задание 3
Задание 4
Задание 5