๐ฝ
์ฌํ ๋ธ๋ผ์ฐ์ ์ ํค๋๋ ํ๋จ ๋ฐ๋ฅผ ๋ง๋ค ๋๋ ๋ณดํต position: fixed๋ฅผ ์ฌ์ฉํด์๋ค.
๊ทธ๋ฐ๋ฐ ๋ฌด์ ์ฌ๋ ์ง๊ทธ์ฌ๊ทธ ์น ๋ธ๋ผ์ฐ์ ์ฒ๋ผ ๋ ์ด์์์ด ๋ชจ๋ฐ์ผ ์ฌ์ด์ฆ(max-width)๋ก ๊ณ ์ ๋ ๊ตฌ์กฐ์์๋
fixed๋ฅผ ์ฌ์ฉํ๋ฉด ์์๊ฐ max-width๋ก ์ ํ๋ ๋ ์ด์์์ ๋ฒ์ด๋ ์ข์ฐ ๋ฐ๊นฅ์ผ๋ก ํ์ด๋์ค๋ ํ์์ด ์๊ธด๋ค.
( fixed๋ ๋ทฐํฌํธ ๊ธฐ์ค์ผ๋ก ๊ณ ์ ๋๊ธฐ ๋๋ฌธ )

์ง๊ทธ์ฌ๊ทธ ์น์ ์ดํด๋ณด๋ ํค๋์ position: sticky๊ฐ ์ฌ์ฉ๋๊ณ ์์๋ค.
๊ทธ๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก sticky๋ฅผ ์ ์ฉํด๋ดค์ง๋ง ๊ณ ์ ์ด ์ ๋๋ค.
๊ฐ์ sticky ์์ฑ์ ์ฌ์ฉํ๋๋ฐ ์ ๊ณ ์ ์ด ์ ๋ ๊น?
์์ธ์ ์ฐพ๋ ๊ณผ์ ์์ ๋ณ๊ฑฐ ์๋ ๋ด์ฉ์ผ ์๋ ์์ง๋ง ์์ CSS ๋์ ์๋ฆฌ๋ฅผ ํ๋ ์๋กญ๊ฒ ์๊ฒ ๋์ด ์ ๋ฆฌํด๋ณธ๋ค.
๊ฒฐ๋ก )
position: sticky๋
โ top, left ๋ฑ ๊ธฐ์ค๊ฐ ํ์
โ ๋ถ๋ชจ ์์์ overflow ์ฌ์ฉ X
1. position: sticky๋?
position: sticky๋ relative์ fixed์ ์ค๊ฐ ๊ฐ๋
- ๊ธฐ๋ณธ ์ํ์์๋ ์ผ๋ฐ ๋ฌธ์ ํ๋ฆ(relative)์ฒ๋ผ ๋์
- ์คํฌ๋กค์ด ํน์ ์์น์ ๋๋ฌํ๋ฉด ๊ณ ์ (fixed)์ฒ๋ผ ๋์
์ฆ, ์คํฌ๋กค ์์น์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๊ณ ์ ๋๋ ํฌ์ง์ ์ด๋ค.
๊ธฐ๋ณธ ์ฌ์ฉ ์์
.header {
position: sticky;
top: 0;
}
๋์ ๋ฐฉ์:
- ์ฒ์์๋ ์ผ๋ฐ ์์์ฒ๋ผ ๋ฐฐ์น
- ์คํฌ๋กคํด์ ์์๊ฐ top: 0 ์์น์ ๋๋ฌํ๋ฉด
- ํด๋น ์์น์ ๋ถ์ด์ ๊ณ ์
๐ก ๋ฐ๋ผ์ top, left, right ๋ฑ์ ๊ธฐ์ค๊ฐ์ ํจ๊ป ์์ฑํด์ผํจ!
2. sticky์ fixed์ ์ฐจ์ด
์์ฑํน์ง
| position: fixed | ํ๋ฉด(Viewport) ๊ธฐ์ค์ผ๋ก ํญ์ ๊ณ ์ |
| position: sticky | ๋ถ๋ชจ ์์ญ ๋ด๋ถ์์๋ง ๊ณ ์ |
์๋ฅผ ๋ค์ด ์ฌ์ด๋๋ฐ์ sticky๋ฅผ ์ฌ์ฉํ๋ฉด
- ์คํฌ๋กคํ ๋ ๋ฐ๋ผ ๋ด๋ ค์ค๋ค๊ฐ
- ๋ถ๋ชจ ์์ญ ๋์ ๋๋ฌํ๋ฉด ๋ฉ์ถ๋ค.
3. position: sticky๊ฐ ๋์ํ์ง ์๋ ๋ํ์ ์ธ ์ด์
1๏ธโฃ top, left ๋ฑ์ ๊ธฐ์ค ๊ฐ์ด ์์
sticky๋ ๊ธฐ์ค ์์น๊ฐ ๋ฐ๋์ ํ์ํ๋ค.
top, bottom, left, right ์ค ํ๋๋ ๋ฐ๋์ ์ง์ ํด์ผ ํ๋ค.
2๏ธโฃ ๋ถ๋ชจ ์์์ overflow ์์ฑ์ด ์์
๋๋ ๋ถ๋ชจ ์์์ overflow ๋๋ฌธ์
3๏ธโฃ Flex / Grid ๋ ์ด์์ ํ๊ฒฝ ๋ฌธ์
flex ์ปจํ ์ด๋ ์์์ sticky๊ฐ ์ ๋๋ก ์๋ํ์ง ์๋ ๊ฒฝ์ฐ๋ ์๋ค.
์ด ๊ฒฝ์ฐ ๋ค์ ์์ฑ์ ์ถ๊ฐํด ํด๊ฒฐํ๋ค.
.sticky-element {
align-self: flex-start;
}

'Dev > +@' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Git ์ปค๋ฐ ์ด๋ ฅ ๋ณ๊ฒฝํ๊ธฐ (์์ฑ์, ๋ ์ง ์์ ํ๊ธฐ) (0) | 2025.12.19 |
|---|---|
| ๋ชจ๋ฐ์ผ UI ๋์์ธ ์์คํ ๊ณผ ํ๋ก ํธ์๋์์ ๋์์ธ ์์คํ ์ ์ฉํ๊ธฐ (0) | 2024.01.20 |
| ์ฌ์ฉ์ ๊ด์ ์ UI ๊ตฌ์ฑํ๊ธฐ (0) | 2023.09.05 |
| ๊ฐ๋์(Ganache) ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ (0) | 2023.06.13 |
| HTML, CSS๋ก ํ ๊ธ ๋ฒํผ ๋ง๋ค๊ธฐ (0) | 2023.06.09 |
๋๊ธ