IMCAT.DEV
로그인 가입
CSS 입문 기초

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 오른쪽으로 이동합니다.
  • 코드 한 줄씩 동작 설명:

    1. .box 클래스를 가진 요소를 선택합니다.
    2. position: relative;로 설정하여 요소를 상대적으로 위치 지정합니다.
    3. top: 20px;으로 원래 위치에서 20px 아래로 이동합니다.
    4. left: 30px;으로 원래 위치에서 30px 오른쪽으로 이동합니다.
    5. width: 100px;으로 상자의 너비를 100px로 설정합니다.
    6. height: 100px;으로 상자의 높이를 100px로 설정합니다.
    7. background-color: blue;로 배경색을 파란색으로 지정합니다.
    8. 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 아래로 이동 /
      }

      6. 정리

    9. CSS 위치 지정 속성은 요소의 위치를 결정하는 중요한 기능입니다.
    10. static, relative, absolute, fixed, sticky의 차이를 이해해야 합니다.
    11. 실제 웹사이트 디자인에서 자주 활용되며, 사용자 경험을 개선하는 데 기여합니다.
    12. 다음에 학습하면 좋은 주제는 Flexbox와 Grid Layout입니다. 이 두 가지는 레이아웃을 보다 효율적으로 구성할 수 있게 해줍니다.