학습
CSS 위치 지정 속성
CSS 위치 지정 속성 — 초급
위치 지정 속성 (CSS Positioning)
1. 도입 (왜 배워야 하는가)
웹 페이지를 디자인할 때, 요소를 화면의 특정 위치에 정확하게 배치하는 것은 매우 중요합니다. 위치 지정 속성(CSS Positioning)은 요소를 화면에서 어떻게 배치할지를 결정하는 CSS의 핵심 기능 중 하나입니다. 이 속성을 이해하지 못하면, 요소들이 서로 겹치거나 의도한 대로 배치되지 않아 사용자 경험이 나빠질 수 있습니다. 특히, 복잡한 레이아웃을 구현할 때는 정확한 위치 지정이 필수적입니다.
예를 들어, 쇼핑몰 웹사이트에서 제품의 사진과 설명을 정렬할 때, 위치 지정 속성을 잘 활용해야 사용자가 자연스럽게 정보를 받아들일 수 있습니다.
2. 핵심 개념 설명
CSS의 위치 지정 속성은 크게 static, relative, absolute, fixed, sticky로 나눌 수 있습니다. 각각의 개념을 쉽게 이해할 수 있도록 설명하겠습니다.
| 속성 | 설명 | 비유 |
|---|---|---|
| static | 기본값으로, 요소는 문서 흐름에 따라 위치함 | 자연에서 나무가 자생적으로 자라는 모습 |
| relative | 자기 위치를 기준으로 이동할 수 있음 | 집이 원래 위치에서 조금 이동하는 모습 |
| absolute | 가장 가까운 position이 설정된 부모를 기준으로 위치함 | 방 안의 가구가 벽에 붙어 있는 모습 |
| fixed | 뷰포트를 기준으로 고정되어 위치함 | 창문에 붙어 있는 그림처럼 화면에 고정됨 |
| sticky | 스크롤에 따라 위치가 변경됨 | 포스트잇이 벽에 붙어 있다가 떨어지는 모습 |
3. 기본 코드 예제
가장 기본적인 위치 지정 속성 사용을 보여주는 예제입니다.
.box {
position: relative; / 상대적으로 위치를 지정함 /
top: 20px; / 원래 위치에서 20px 아래로 이동 /
left: 30px; / 원래 위치에서 30px 오른쪽으로 이동 /
width: 100px; / 너비 100px /
height: 100px; / 높이 100px /
background-color: blue; / 파란색 배경 /
}
실행 결과:
- 파란색 상자가 원래 위치에서 20px 아래, 30px 오른쪽으로 이동합니다.
.box클래스를 가진 요소를 선택합니다.position: relative;로 설정하여 요소를 상대적으로 위치 지정합니다.top: 20px;으로 원래 위치에서 20px 아래로 이동합니다.left: 30px;으로 원래 위치에서 30px 오른쪽으로 이동합니다.width: 100px;으로 상자의 너비를 100px로 설정합니다.height: 100px;으로 상자의 높이를 100px로 설정합니다.background-color: blue;로 배경색을 파란색으로 지정합니다.- CSS 위치 지정 속성은 요소의 위치를 결정하는 중요한 기능입니다.
static,relative,absolute,fixed,sticky의 차이를 이해해야 합니다.- 실제 웹사이트 디자인에서 자주 활용되며, 사용자 경험을 개선하는 데 기여합니다.
- 다음에 학습하면 좋은 주제는 Flexbox와 Grid Layout입니다. 이 두 가지는 레이아웃을 보다 효율적으로 구성할 수 있게 해줍니다.
코드 한 줄씩 동작 설명:
4. 실전 활용 예제
실무에서 자주 사용하는 위치 지정 속성 패턴을 두 가지 소개합니다.
예제 1: 내비게이션 바
쇼핑몰 웹사이트에서 상단 내비게이션 바를 구현할 때, fixed 속성을 사용하여 스크롤 시에도 항상 상단에 고정되도록 할 수 있습니다.
.nav {
position: fixed; / 뷰포트를 기준으로 고정 /
top: 0; / 화면의 최상단에 위치 /
left: 0; / 화면의 최좌측에 위치 /
width: 100%; / 전체 너비 /
background-color: white; / 흰색 배경 /
}
예제 2: 모달 창
사용자가 버튼을 클릭했을 때 나타나는 모달 창은 absolute 속성을 이용해 중앙에 위치시킬 수 있습니다.
.modal {
position: absolute; / 부모 요소를 기준으로 위치 /
top: 50%; / 화면의 세로 중앙에 위치 /
left: 50%; / 화면의 가로 중앙에 위치 /
transform: translate(-50%, -50%); / 중앙 정렬을 위해 이동 /
background-color: white; / 흰색 배경 /
padding: 20px; / 내부 여백 /
}
5. 흔한 실수와 주의사항
초보자가 자주 하는 실수와 그에 대한 올바른 코드 예시입니다.
잘못된 코드
.box {
position: absolute; / 부모가 position을 설정하지 않음 /
top: 10px; / 예상과 다르게 위치함 /
}
올바른 코드
.parent {
position: relative; / 부모 요소에 상대적 위치 설정 /
}
.box {
position: absolute; / 부모를 기준으로 위치함 /
top: 10px; / 부모의 10px 아래로 이동 /
}