본문 바로가기
프로그래밍/Bootstrap

3. 반응형 웹의 기초, Bootstrap 그리드 시스템 완벽 가이드

by 완소루피 2024. 11. 12.
728x90
반응형

안녕하세요! 오늘은 Bootstrap의 그리드 시스템에 대해 알아볼게요. Bootstrap의 그리드 시스템은 반응형 웹의 핵심 요소로, 다양한 화면 크기와 디바이스에 맞춰 레이아웃을 유동적으로 조정해주는 역할을 합니다. 이 글에서는 그리드 시스템의 기본 구조, 칼럼과 컨테이너 사용법, 반응형 레이아웃 디자인 방법을 다루겠습니다.

1. Bootstrap 그리드 시스템의 구조

Bootstrap 그리드 시스템은 12개의 칸(row)으로 나뉜 레이아웃을 기본으로 합니다. 각 칸을 조합해 다양한 레이아웃을 만들 수 있어요. 예를 들어 6칸씩 2개의 컬럼으로 나누거나, 4칸씩 3개의 컬럼을 배치하는 방식으로 원하는 구조를 쉽게 구성할 수 있습니다.

Bootstrap의 그리드 시스템을 구성하는 기본 요소는 다음과 같아요:

  • 컨테이너(container): 콘텐츠를 감싸며, 그리드 시스템이 반응형으로 잘 작동하도록 도와주는 요소입니다.
  • 행(row): 그리드를 구성하는 행으로, 여기에 여러 개의 컬럼이 포함됩니다.
  • 컬럼(column): 실제 콘텐츠가 들어가는 영역으로, 각 컬럼의 크기를 지정해 레이아웃을 조정합니다.

2. 컨테이너와 컬럼 사용법

그리드 시스템을 시작하려면 먼저 container 클래스를 추가하고, 그 안에 row를 만들고, col 클래스를 가진 컬럼을 배치해야 합니다. 컨테이너에는 두 가지 종류가 있어요.

  • .container: 고정된 너비로 중앙에 배치되며, 화면 크기에 따라 일정한 여백을 유지합니다.
  • .container-fluid: 화면의 전체 너비를 차지하여 여백 없이 레이아웃을 구성할 수 있습니다.

다음은 기본적인 그리드 시스템 구조입니다:

 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Bootstrap 그리드 시스템 예제</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
  <div class="container">
    <div class="row">
      <div class="col">Column 1</div>
      <div class="col">Column 2</div>
      <div class="col">Column 3</div>
    </div>
  </div>
  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.2/dist/umd/popper.min.js"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>
</html>

 

 

위 코드에서는 **container**와 row, 그리고 col 클래스를 사용해 3개의 컬럼을 배치했습니다. 이 구조는 모든 컬럼이 동일한 비율로 배치되며, 화면 크기에 따라 크기가 자동 조정됩니다.

3. 반응형 레이아웃 디자인 방법

Bootstrap의 그리드 시스템은 화면 크기에 따라 다른 레이아웃을 설정할 수 있도록 반응형 클래스를 제공합니다. 각 클래스는 디바이스 크기에 따라 다른 접두사가 붙는데요, 이를 사용하면 다양한 화면 크기에서 유연한 레이아웃을 구성할 수 있습니다.

화면 크기별 그리드 클래스

  • col-sm-: 작은 화면(스마트폰)부터 적용됩니다. (576px 이상)
  • col-md-: 중간 크기 화면(태블릿)부터 적용됩니다. (768px 이상)
  • col-lg-: 큰 화면(데스크톱)부터 적용됩니다. (992px 이상)
  • col-xl-: 매우 큰 화면(대형 데스크톱)부터 적용됩니다. (1200px 이상)

예제: 반응형 그리드 레이아웃

다음 예제에서는 화면 크기에 따라 다른 레이아웃이 적용되도록 설정해볼게요.

 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>반응형 그리드 예제</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
  <div class="container">
    <div class="row">
      <div class="col-sm-12 col-md-6 col-lg-4 bg-primary text-white">Column 1</div>
      <div class="col-sm-12 col-md-6 col-lg-4 bg-secondary text-white">Column 2</div>
      <div class="col-sm-12 col-md-6 col-lg-4 bg-success text-white">Column 3</div>
    </div>
  </div>
  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.2/dist/umd/popper.min.js"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>
</html>

 

 

이 예제에서는 각 컬럼에 반응형 클래스를 적용했어요:

  • col-sm-12: 화면이 작은 디바이스(576px 이하)에서는 모든 컬럼이 전체 너비를 차지하도록 설정합니다.
  • col-md-6: 화면이 중간 크기(768px 이상)일 때는 각 컬럼이 너비의 절반을 차지하도록 설정합니다.
  • col-lg-4: 화면이 큰 크기(992px 이상)일 때는 각 컬럼이 12분의 4, 즉 너비의 3분의 1씩을 차지하게 됩니다.

이렇게 클래스 조합을 통해 화면 크기에 맞춰 레이아웃이 유동적으로 변화하도록 설정할 수 있습니다.

4. 그리드 오프셋과 순서 변경

Bootstrap은 그리드 시스템에서 오프셋순서 변경 기능도 제공해요.

  • 오프셋(offset): 컬럼의 왼쪽에 여백을 추가해 원하는 위치로 밀어주는 기능입니다. 예를 들어 col-md-4 offset-md-2를 사용하면, 4칸짜리 컬럼이 2칸 오른쪽으로 이동합니다.
  • 순서 변경(order): order- 클래스를 통해 컬럼의 순서를 변경할 수 있어요. 예를 들어 order-md-1, order-md-2 클래스를 사용해 화면 크기에 따라 다른 순서로 컬럼을 배치할 수 있습니다.
<div class="container">
  <div class="row">
    <div class="col-md-4 offset-md-2 bg-warning text-white">Column with Offset</div>
    <div class="col-md-4 bg-info text-white">Regular Column</div>
  </div>
  <div class="row">
    <div class="col-md-4 order-md-2 bg-danger text-white">Second Column</div>
    <div class="col-md-4 order-md-1 bg-primary text-white">First Column</div>
  </div>
</div>

 

 

요약 및 다음 단계

Bootstrap의 그리드 시스템을 활용하면 반응형 웹을 쉽게 설계할 수 있어요. container, row, col 클래스를 기본 구조로, 화면 크기별 반응형 클래스와 오프셋, 순서 변경을 통해 다양한 레이아웃을 만들 수 있습니다. 다음 단계로는 그리드 시스템을 실제 웹 페이지 프로젝트에 적용해보세요. 각 컴포넌트와 그리드를 결합해 더 복잡하고 매력적인 디자인을 구현해보시길 추천드립니다!

 

2024.11.12 - [프로그래밍/Bootstrap] - Bootstrap 목차

728x90
반응형