๐คPosition์ด๋?
์์๋ฅผ ์ํ๋ ์์น์ ์์ ๋กญ๊ฒ ์ด๋ํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ property์ด๋ค.
Position์๋ 5๊ฐ์ง์ ์ข ๋ฅ๊ฐ ์กด์ฌํ๋ค.
1. static
2. relative
3. absolute
4. fixed
5. sticky
(sticky๋ ์ง์ํ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ง์ง ์๊ธฐ ๋๋ฌธ์ ๋ด์ฉ์ ์คํตํ๊ฒ ๋ค.)
โจposition๊ณต๋ถ ์ ์ค์ ํฌ์ธํธ
โ 1. ๋ด๊ฐ ์ด๋ค ์ข ๋ฅ์ position์ ์ฌ์ฉํ๊ณ ์๋์ง
โ 2. ๋ด๊ฐ ์ฌ์ฉํ๋ position์ ๋ฌด์์ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉํ๋์ง
๊ธฐ์ค์ ์ด ๊ฐ๊ฐ์ ํฌ์ง์ type์ ๋ฐ๋ผ ๋ง์ด ๋ฌ๋ผ์ง๋ค.
๐ก Type 1. static
static์ ๋ชจ๋ ์์์ ๊ธฐ๋ณธ position๊ฐ์ด๋ค.
๋ชจ๋ ์์์ ํฌ์ง์ ์ ๋ชจ๋ static์ผ๋ก ์ค์ ๋์ด์๋ค.
์ฐ๋ฆฌ๊ฐ ์๊ฐํ๋ ์ผ๋ฐ์ ์ธ ์์์ ์ํ๋ static์ด๋ค.
๐ก Type 2. relative
relative ์ด๋์ ๊ธฐ์ค์ ์ ์๊ธฐ ์์ ์ด ๋ณธ๋ ์๋ ์๋ฆฌ์ด๋ค.(๋ณธ๋ ์๋ ์๋ฆฌ์์ ์, ์๋, ์ข, ์ฐ๋ก ์์ง์ผ ์ ์๋ค.)
์ฐ๋ฆฌ๊ฐ ์ด๋ค ์์์ relative๊ฐ์ ๋ถ์ฌํ๋ฉด, float๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถ๋ชจ ์์๋ฅผ ๋ ๋ ์์๊ฐ ๋ถ๋จ๊ฒ๋๋ค.
ํ์ง๋ง float์ ๋ค๋ฅด๊ฒ layout์ด ๋ถ๊ดด๋๊ฑฐ๋, ๋ค๋ฅธ ์ฃผ๋ณ ์์์ ์ํฅ์ ๋ผ์น์ง ์๋๋ค.
๊ทธ ์ด์ ๋ relative๋ float์ ๋์ผํ๊ฒ ๋ถ๋ชจ๋ก๋ถํฐ ๋ถ๋จ๊ฒ ๋์ง๋ง ๋ณธ๋์ ์๊ธฐ ์์น๋ ๊ธฐ์ต์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ํ ๋ถ๋ชจ, ํ์ ์์๋ค๋ relative์์์ ์์น๋ฅผ ์ธ์งํ๊ณ ์๊ธฐ ๋๋ฌธ์ layout๋ถ๊ดด๊ฐ ์ผ์ด๋์ง ์๊ฒ ๋๋ ๊ฒ์ด๋ค!
๐ก Type 3. absolute
absolute๋ float์ ๋์ผํ๊ฒ ๋ถ๋ชจ ์์๋ก๋ถํฐ ๋ถ๋จ๊ฒ ๋๋ฉด์ display๊ฐ์ด block์ผ๋ก ์ค์ ๋๋ค.
absolute๋ float์ ๋งค์ฐ ๋น์ทํ ๋ชจ์ต์ ๋ณด์ฌ์ค๋ค.
๋ถ๋ชจ์ ์์๋ก๋ถํฐ ๋ถ๋จ๊ธฐ๋๋ฉฐ block์ด์ง๋ง ๊ธธ๋ง์ ํ์ง ๋ชปํ๋ block์ด ๋๋ค.
ํ์ง๋ง ๋น์ทํ ์ด ๋์๊ฒ๋ ๋ค๋ฅธ ํ ๊ฐ์ง๊ฐ ์๋ค.
๋ฐ๋ก inline contents๊ฐ ๋ค๋ฅด๋ค๋ ์ ์ด๋ค.
float ๊ฐ์ ๊ฒฝ์ฐ๋ inline contents๊ฐ float ๋ ์์์ ์กด์ฌ๋ฅผ ์์ ์์๋ฅผ ํผํด ๋ค๋ ์ง๋ง.(ํ๋จ)
absolute๋ ํผ์ ๋ถ์ด์ contents์ ๊ด์ฌํ์ง ์๋ ๋ชจ์ต์ ๋ณด์ฌ์ค๋ค.(ํ๋จ)
๊ทธ๋ผ ์ด์ absolute๊ฐ ๋ฌด์์ ๊ธฐ์ค์ ์ผ๋ก ์ผ์ ์์น๋ฅผ ์์ง์ด๋์ง ์์๋ณด๊ฒ ๋ค.
absolute๋ ํน์ดํ๊ฒ ์์ ์ด ๊ธฐ์ค์ผ๋ก ์ผ๊ณ ์ถ์ ๊ธฐ์ค์ ์ ์๋ก ์ ํ ์ ์๋ค.
float๋ ๋ถ๋ชจ ์์๋ก๋ถํฐ ์ข ์๋์ด ์์์ง๋ง,
absolute ๊ฐ์ ๊ฒฝ์ฐ์ ์์ ์ ๊ฐ์ธ๊ณ ์๋ ์กฐ์ ์์๋ค ์ค ํ๋๋ฅผ ์ ํํด ๊ธฐ์ค์ผ๋ก ์ก์ ์ ์๋ค.
์ ํ์ ๊ธฐ์ค(์กฐ๊ฑด)์ position์ด static์ด ์๋ ์์์ผ ๊ฒฝ์ฐ ๊ทธ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ณธ์ธ์ ์์น์ํจ๋ค.
(์กฐ์ ์์๋ ๋๋ถ๋ถ ์ฃผ๋ณ ์์์ ์ํฅ์ ๋ผ์น์ง ์๋ relative๊ฐ ์ฌ์ฉ๋๋ค.)
.grandparent{
width: 800px;
background-color: darkgrey;
position: relative;
margin: 0;
height:600px ;
}
.red {
background-color: #ff4949;
position: absolute;
bottom: 20px;
right:20px;
}
.yellow {
background-color: #ffc82c;
}
.blue {
background-color: #0066ff;
}
์กฐ์์ ์์ ์์์ ๋นจ๊ฐ์ ์์๊ฐ ์๋๋ก 20px ์ค๋ฅธ์ชฝ์ผ๋ก 20px ์์ง์ธ ๊ฒ์ ๋ณผ ์ ์๋ค.
๐กType 4. fixed
absolute์ fixed๋ ๋์ผํ ํ์์ ๊ฐ์ง๊ณ ์๋ค.
display๊ฐ block, ๊ธธ๋ง ํ ์ ์๋ block, ์ง ๋๊ฐ ์์์ด ๋๋ค๋ ๊ฒ ๋ฑ ๋์ผํ ํ์์ ๊ฐ์ง๊ณ ์์ง๋ง
๋์ ๊ฐ์ฅ ํฐ ๋ค๋ฅธ ์ ์ ๋ฐ๋ก ๊ธฐ์ค์ ์ด๋ค.
fixed๋ ๋ช ํํ๊ฒ ๋ณธ์ธ์ ๊ธฐ์ค์ ์ด ์กด์ฌํ๋๋ฐ,
๋ฐ๋ก viewport(๋ธ๋ผ์ฐ์ ์ฐฝ์ ์ ์ฒด ํฌ๊ธฐ) ์ฌ์ด์ฆ๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ ์ ์์น์ํจ๋ค.
(ํธ๋ํฐ ๊ธฐ์ข ๋ง๋ค ์๋ก ๋ค๋ฅธ viewport๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ฐค๋ญ์, ์์ดํฐ ํ๋ฉด ์ฌ์ด์ฆ์ ์ฐจ์ด์ ๋ฑ)
.grandparent{
width: 800px;
background-color: darkgrey;
position: relative;
margin: 0;
height:600px ;
}
.red {
background-color: #ff4949;
position: fixed;
bottom: 0px;
right:0px;
}
.yellow {
background-color: #ffc82c;
}
.blue {
background-color: #0066ff;
}
viewport์์ ๋นจ๊ฐ์ ์์๊ฐ ๋ฐ๋ฅ์ ๋ฐ์ฐฉํ(0px) ์ค๋ฅธ์ชฝ ๋ฐ์ฐฉํ(0px) ๋ชจ์ต์ ๋ณผ ์ ์๋ค.
โโ z-index โโ
position ๋ ์์๋ค์ ์์ง๋ฐฉํฅ์ผ๋ก ์จ์ level ์์น๋ฅผ ์๋ ค์ค๋ค.
position์ static์ ์ ์ธํ ์กฐ๊ฑด๋ค์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ชจ๋ ์์๋ฅผ ๋ถ ๋์ฐ๊ฒ ๋๋ค.
์ด๋ ์์ง๋ฐฉํฅ์ผ๋ก ๋ถ๋จ๋ฉฐ z-index๋ผ๋ level์ด ์๊ธด๋ค.
์์ ๊ฐ์ ์์น๊ฐ ์๊ธฐ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ํตํด css๋ฅผ ์กฐ์ ํด ์ฌ์ฉํ ์ ์๋ค.
'Front-end > CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS3]Media Query(๋ฐ์ํ ์น) (0) | 2022.03.27 |
---|---|
[CSS3]Flexbox (0) | 2022.03.26 |
[CSS3]Float๋? / Layout ์ค๋ฅ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ (0) | 2022.03.14 |
[CSS3]BOX (Block,Inline,Inline Block) (0) | 2022.03.13 |
[CSS3] CSS๋? (0) | 2021.11.04 |