티스토리 뷰
728x90
반응형
CSS Study Note
Position
브라우저 동작 원리를 이해하는 position 완전 정복
01 — 5가지 position 속성
static
position 기본값. 일반 문서 흐름(normal flow) 그대로 유지. left/top/right/bottom 적용 안됨.
position: static; /* 기본값 */
relative
자신의 원래 위치 기준으로 이동. 원래 자리는 공간 유지. absolute 자식의 기준점 역할로 많이 사용.
position: relative;
left: 20px;
top: 10px;
absolute
normal flow에서 제거됨. 가장 가까운 position 지정 조상을 기준으로 이동. 부모 relative + 자식 absolute 세트 사용.
.parent { position: relative; }
.child { position: absolute;
right: 0; bottom: 0; }
fixed
뷰포트 기준 고정. 스크롤해도 같은 위치 유지. 네비게이션, 위로가기 버튼, 플로팅 버튼, 모달에 사용.
position: fixed;
right: 20px;
bottom: 20px;
sticky
평소엔 일반 흐름 유지. 지정 위치(top)에 도달하면 고정. 부모 영역을 벗어나면 고정 해제. 부모에 overflow: hidden 있으면 동작 안 함 주의.
position: sticky;
top: 0;
02 — 핵심 개념
absolute 기준점
어디를 기준으로 움직이나
absolute는 position: static이 아닌 가장 가까운 조상을 기준으로 배치됩니다.
그래서 부모: relative + 자식: absolute 세트 패턴을 씁니다.
부모에 relative가 없으면 계속 위로 올라가 body가 기준이 됩니다.
그래서 부모: relative + 자식: absolute 세트 패턴을 씁니다.
부모에 relative가 없으면 계속 위로 올라가 body가 기준이 됩니다.
normal flow 제거
absolute / fixed 적용 시
absolute / fixed 요소는 문서 흐름에서 빠져나옵니다.
→ 부모 높이 계산에서 제외됨
→ 형제 요소들이 자리를 당겨옴
이 때문에 부모 높이가 줄어드는 현상이 발생합니다.
→ 부모 높이 계산에서 제외됨
→ 형제 요소들이 자리를 당겨옴
이 때문에 부모 높이가 줄어드는 현상이 발생합니다.
z-index
겹치는 순서 제어
겹치는 요소의 앞뒤 순서를 제어합니다.
단, position: static에서는 동작하지 않음.
relative / absolute / fixed / sticky 가 있어야 z-index 적용 가능.
단, position: static에서는 동작하지 않음.
relative / absolute / fixed / sticky 가 있어야 z-index 적용 가능.
position: relative;
z-index: 10;
absolute → 블록화
display 특성 변화
인라인 요소(span 등)에 absolute / fixed 적용 시
width, height, margin 등이 블록처럼 자유롭게 적용됩니다.
별도로 display: block / inline-block 없어도 됩니다.
width, height, margin 등이 블록처럼 자유롭게 적용됩니다.
별도로 display: block / inline-block 없어도 됩니다.
03 — 실무 활용 패턴
쇼핑몰 카드 뱃지 / 버튼
.img-box {
position: relative;
}
button {
position: absolute;
right: 12px;
bottom: 12px;
}
Hover 슬라이드 오버레이
div { overflow: hidden; }
.box {
position: absolute;
left: -100%; /* 숨김 */
}
a:hover .box {
left: 0;
transition: 0.5s;
}
위로가기 버튼 고정
.top {
position: fixed;
right: 20px;
bottom: 30px;
z-index: 99;
}
Sticky 섹션 + footer 덮기
section {
position: sticky;
top: 0;
}
footer {
position: relative;
z-index: 1; /* section 위로 */
}
04 — 자주 하는 실수
부모에 relative 없음
absolute 기준점이 사라져 body 기준으로 이동. 반드시 부모에 relative 세트로 사용.
overflow: hidden 없음
left: -100%로 숨겨도 밖으로 삐져나와 보임. 슬라이드 효과 시 필수.
absolute 남용
레이아웃 전체를 absolute로 해결하려는 습관. 꼭 겹칠 때만 사용하고 일반 흐름 유지가 기본.
05 — 한눈에 비교
| 속성 | 기준 | flow 유지 | 대표 사용 |
|---|---|---|---|
| static | 기본 흐름 | O | 기본 상태 / 리셋용 |
| relative | 자기 자신 | O | absolute 기준점 |
| absolute | position 조상 | X | 뱃지, 버튼, overlay |
| fixed | 뷰포트 | X | top 버튼, 네비, 모달 |
| sticky | 스크롤 위치 | O → 고정 | sticky 메뉴, 섹션 |
🎯 수업 핵심 목표
왜 relative를 쓰는가
왜 absolute가 필요한가
왜 부모 높이가 사라지는가
왜 요소가 겹치는가
왜 overflow: hidden이 필요한가
단순 암기가 아니라 브라우저 동작 원리를 이해하는 것
728x90
반응형
'WEB > CSS' 카테고리의 다른 글
| CSS Background 요약 정리 (0) | 2026.05.26 |
|---|---|
| 플렉서블 레이아웃 소개 (0) | 2025.12.08 |
| min(), max(), clamp() - 활용 예제 (0) | 2025.03.06 |
| [퍼블리싱] 그라데이션 버튼 애니메이션 만들기 - 인크루트웍스 클론하기 (0) | 2025.03.05 |
| position: sticky가 안 돼요? 안 되는 이유 & 해결법 (0) | 2025.02.27 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 웹표준
- 웹디자인개발기능사
- 웹접근성
- 찐망고
- 프론트엔드
- 웹퍼블리싱
- 웹디자인팁
- CSS3
- 찐망고사주
- 피그마
- figma
- 티스토리챌린지
- uiux
- 구글머터리얼디자인
- 서비스기획
- 반응형웹
- UX디자인
- html
- seo
- 디자인시스템
- 오블완
- UI디자인
- ai사주
- 웹디자인
- 머터리얼디자인
- 2024웹디자인
- 바이브코딩
- css
- 디자인팁
- JavaScript
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
글 보관함