๐position ?
์นํ์ด์ง์์ ๋ง๋ค์๋ htmlํ๊ทธ , id , class ๋ฐ์ค ๋ฑ์ ์์น๋ฅผ ์ง์ ํด์ฃผ๋ ์์ฑ์ด๋ค.
1) absolute / static / absolute
- static : ๊ธฐ๋ณธ๊ฐ , htmlํ๊ทธ ์์ผ๋ก ์์น๊ฐ ์ง์ ๋๋ค.
(๊ตณ์ด ์ธ ํ์๋ ์์ง๋ง , ๋ถ๋ชจ ๊ฐ์ฒด์์ ๋ค๋ฅธ position ์์ฑ๊ฐ์ด ์ฃผ์ด์ก์๋ ๋ฌด์ํ๊ธฐ์ํด ์ฌ์ฉํจ.)
box1 , box2 , box3๋ฅผ static์ผ๋ก ๋์์ ๊ฒฝ์ฐ
-absolute : ๊ธฐ์ค์ ์ด html์์น์ ์๋ค.
( ์ผ์ชฝ ์ ์ผ ์๋จ์ ๊ธฐ์ค์ผ๋ก ํ๋ฉฐ ์์ง์ธ๋ค.)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>relative-absolute</title>
<style>
.box1{
position:relative;
top:40px;
background-color: green;
color:white;
width: 100px;
height: 100px;
}
.box2{
position:absolute;
top: 40px;
background-color: red;
color:white;
width: 100px;
height: 100px;
}
.box3{
position: absolute;
top: 30px;
left: 30px;
background-color: blue;
color:white;
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div class="box3">box3</div>
<div class="box1">box1
<div class="box2">
box2
</div>
</div>
</body>
</html>
box2๋ absolute๋ก ์ฃผ์ด์ก๊ธฐ๋๋ฌธ์ ๋ค๋ฅธ ๋ฐ์ค๋ฅผ ๋ฌด์ํ๊ณ ์ ค ์์ชฝ ์๋จ์ ๊ธฐ์ค์ผ๋ก top : 40px; ๋งํผ ๊ฐ ๊ฒ์ ์ ์์๊ณ , box3 ์ญ์ ์ผ์ชฝ ์๋จ์ ๊ธฐ์ค์ผ๋ก top:30px, left:30px ๋งํผ ๊ฐ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
- relative : ์๋ ์์ ์ด ์์ด์ผ ํ ์์น๋ก ๋ถํฐ ์๋์ ์ผ๋ก ์์น
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>relative</title>
<style>
.box1{
position: static;
background-color: green;
color: white;
width: 100px;
height: 100px;
}
.box2{
position:relative;
left: 40px;
background-color: red;
color:white;
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div class="box1">box1</div>
<div class="box2">box2</div>
</body>
</html>
box2๋ ์๋ box1๋ฐ์ ์๋ฆฌ (์๋์์ด์ผ ํ ์์น)๋ก ๋ถํฐ left:40px ๋งํผ ์ด๋ํ ๊ฒ์ ๋ณผ ์์๋ค.
์ ๋ฆฌ
static : position์ ์ฃผ์ง ์์์๋ ๋ํดํธ ๊ฐ
relative : nomal flow๋ฅผ ๋ฐ๋ฅผ ๋ ์๋ ์์ด์ผํ๋ ์์น์์ ์๋์ ์ผ๋ก ์ผ๋ง๋ ์์ง์ด๋๋๋ผ๋ ๊ธฐ์ค
absolute : ์๊ธฐ ๋ถ๋ชจ๋ค ์ค static์ด ์๋ ํ๊ทธ์ ์์น ๊ธฐ์ค
์ด ๊ธ์ ํฌ์คํ ํ ์ด์ ๋ ์๋ ์ฝ๋๋ฅผ ์ ์ฐ๋๊ฐ์ ๋ํ ๊ถ๊ธ์ฆ ๋๋ฌธ์ด์๋ค.
position: absolute;
top: 0;
width: 100%;
๋ก๊ณ ๊ฐ์ด ๋งจ ์์ ์์น๋์ด์ผํ ํ๊ทธ์ position์ absolute๋ก ๋๊ณ top:0; ๋ฅผ ์ฃผ๋ฉด
์ด ๊ฐ์ html ์ ์ผ ์ผ์ชฝ ์๋จ์ ์์นํ๊ฒ ๋๋ค.
2) fixed / sticky
- fixed
์คํฌ๋กค์ ์ฌ๋ฆฌ๊ฑฐ๋ ๋ด๋ฆด๋ ํน์ ๋ฐ์ค๊ฐ ๊ณ ์ ๋์ด ์์ง์ด์ง ์๊ฒ ํ๋ ์์ฑ
absolute๊ฐ position์์ฑ์ ๊ฐ์ง ๊ฐ์ฅ ๊ฐ๊น์ด ๋ถ๋ชจ๋ฅผ ๊ธฐ์ค์ผ๋ก ์์น๋ฅผ ์ ํจ.
ex) ๋ค์ด๋ฒ ๊ฒ์์ฐฝ , ๋คํฌ๋ชจ๋๋ฒํผ
See the Pen Untitled by mandelina (@mandelina) on CodePen.
-sticky
๋ฌธ์์ ํ๋ฆ์ ๋ฐ๋ผ ๋ฐฐ์น๋๋ฉฐ ์์ ์ ์์์์์ ๋ถ๊ฒ ๋๋ค.
ex) ์น ๊ด๊ณ ๋ฐฐ๋
See the Pen Untitled by mandelina (@mandelina) on CodePen.
(0.25๋ก ๋ณด์ ์ผ ์ ์ ์์ต๋๋ค.)
์ฐจ์ด์ ์ ๋ฌด์์ผ๊น ?
- fixed๋ ๋ฌธ์ฅ์ ํ๋ฆ๊ณผ ์๊ด์์ด ํญ์ ์๊ธฐ์๋ฆฌ ์ ๊ณ ์ ์ด ๋์ด์๋ค๋ฉด,
- sticky๋ ๋ฌธ์์ ํ๋ฆ์ ๋ฐ๋ผ ๋ฐฐ์น ๋๋ฉฐ ์์์์, ํ์์์์ ๊ฐ๋ฉด ๋ฑ ๋ฌ๋ผ๋ถ๋๋ค.
๐๊ทธ๋ฐ์
- z-index์ ๊ฒฝ์ฐ ๋ณดํต 10,100,1000 ๋จ์ ๋ฑ์ผ๋ก ํฌ๊ฒํฌ๊ฒ ์ด๋ค. (ํ์ฌ ์ปจ๋ฒค์ ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค.)
- ๋ฏธ๋ฆฌ๋ฏธ๋ฆฌ ์ด๋ ฅ์๋ฅผ ์ฐ์!
๐ฅ ํ๊ณ
์์ํ์ง ๋ณ๋ก ์๋๊ฒ ๊ฐ์๋ฐ ๋ฒ์จ 3์ฃผ์ฐจ๋ก ๋์ด๊ฐ๊ณ ์๋ค.
css๋ฅผ ๋ค์ด์ค๋ฉฐ ํ์คํ ์ดํดํ์ง์์ผ๋ฉด ํท๊ฐ๋ฆด๋งํ ๊ฐ๋ ๋ค์ด ๋์จ๋ค. (ir๊ธฐ๋ฒ์ด๋ผ๋์ง , ์ ํ์ ์ฌํ๋ถ๋ถ์ด๋ผ๋์ง..)
์ผ๋จ ๊ธํ ๊ณผ์ ๋ค์ ๋ง๋ฌด๋ฆฌ ํ๊ณ , ir๊ธฐ๋ฒ๊ณผ ๊ฐ์์ ํ์๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ๊ณต๋ถํด์ผ๊ฒ ๋ค.
๋ํ ์ ์ ๊ณต๋ถํ ์์ด ๋ง์์ง๋๋ฐ ๋ํํด์ง์ง ๋ง๊ณ ์ด ํ์ด์ค ๊ทธ๋๋ก ์ด์ด๊ฐ์!
์์์ผ ํ์ดํ ๐
'FE > HTML,CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[css] Flex๋? (0) | 2022.04.13 |
---|---|
[css] float (0) | 2022.04.12 |
[css] ์ค์์ ๋ ฌ ์ ์ฌ์ฉ๋๋ ์ฝ๋ ๋ชจ์ (0) | 2022.04.07 |
overflow : hidden vs display : none ์ ์ฐจ์ด์ ์? (0) | 2022.04.07 |
[css] imgํ๋จ์์์ ์๊ธฐ๋ ๋น๊ณต๊ฐ์ ๋ฌด์์ผ๊น ? (2) | 2022.04.07 |