Пазіцыянаванне адносна бацькоўскага элемента ў CSS
Калі элементу зададзены relative, а яго
нашчадку - absolute, то гэты нашчадак
будзе пазіцыянавацца адносна свайго
бацькоўскага элемента, а не адносна акна браўзера.
Як правіла, у такім выпадку бацькоўскаму элементу паказваюць relative без зрухаў. У гэтым выпадку з гэтым бацькоўскім элементам нічога не адбываецца, але ўсе яго нашчадкі цяпер будуць пазіцыянавацца адносна яго.
Давайце паглядзім на прыкладах.
Прыклад
Для пачатку давайце проста зробім блок-бацьку і блок-нашчадак без пазіцыянавання:
<div id="parent">
<div id="child"></div>
</div>
#parent {
width: 500px;
height: 300px;
margin: 0 auto;
border: 1px solid red;
}
#child {
width: 200px;
height: 200px;
border: 1px solid green;
}
:
Прыклад
Давайце цяпер абсалютна спазіцыянуем зялёны
блок. Так як бацькоўскаму элементу не паказаны relative,
то нашчадак будзе пазіцыянавацца адносна
акна браўзера:
<div id="parent">
<div id="child"></div>
</div>
#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. У
гэтым выпадку нашчадак будзе пазіцыянавацца
адносна свайго бацькоўскага элемента:
<div id="parent">
<div id="child"></div>
</div>
#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.