Bootstrap 4 / Cards / 카드 만들기

콘텐츠 목록을 보여줄 때 카드형 배열을 많이 사용합니다. Bootstrap을 이용하면 카드 목록을 쉽게 만들 수 있습니다.

기본

카드를 만드는 기본적인 마크업은 다음과 같습니다.

<div class="card">
  <div class="card-header">
    My Card
  </div>
  <img src="images/card-image.png" alt="" />
  <div class="card-body">
    <h5 class="card-title">Lorem</h5>
    <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sed sem ut malesuada.</p>
    <a href="#" class="btn btn-primary">More</a>
  </div>
</div>
  • .card-header에는 카드 제목을 입력합니다.
  • .card-body에는 카드 내용이 들어갑니다. .card-title로 제목을, .card-text로 내용을 구분합니다.

다음은 카드 두 개를 만든 간단한 예제입니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap 4</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
    <style>
      p { margin:20px 0px; }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="row">
        <div class="col-6">
          <p>Card</p>
          <div class="card">
            <div class="card-header">
              My Card
            </div>
            <img src="images/card-image.png" alt="" />
            <div class="card-body">
              <h5 class="card-title">Lorem</h5>
              <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sed sem ut malesuada.</p>
              <a href="#" class="btn btn-primary">More</a>
            </div>
          </div>
        </div>
        <div class="col-6">
          <p>Card</p>
          <div class="card">
            <div class="card-header">
              My Card
            </div>
            <img src="images/card-image.png" alt="" />
            <div class="card-body">
              <h5 class="card-title">Lorem</h5>
              <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sed sem ut malesuada.</p>
              <a href="#" class="btn btn-primary">More</a>
            </div>
          </div>
        </div>
      </div>
    </div>
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
  </body>
</html>

이미지 또는 제목 제거하기

이미지 또는 제목을 제거해도 카드 모양으로 잘 나옵니다. 단, 제목 없이 이미지가 바로 나올 경우 이미지 태그에 class="card-img-top"를 추가합니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap 4</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
    <style>
      p { margin:20px 0px; }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="row">
        <div class="col-4">
          <p>Card</p>
          <div class="card">
            <div class="card-header">
              My Card
            </div>
            <div class="card-body">
              <h5 class="card-title">Lorem</h5>
              <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sed sem ut malesuada.</p>
              <a href="#" class="btn btn-primary">More</a>
            </div>
          </div>
        </div>
        <div class="col-4">
          <p>Card</p>
          <div class="card">
            <img src="images/card-image.png" alt="" class="card-img-top" />
            <div class="card-body">
              <h5 class="card-title">Lorem</h5>
              <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sed sem ut malesuada.</p>
              <a href="#" class="btn btn-primary">More</a>
            </div>
          </div>
        </div>
        <div class="col-4">
          <p>Card</p>
          <div class="card">
            <div class="card-body">
              <h5 class="card-title">Lorem</h5>
              <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sed sem ut malesuada.</p>
              <a href="#" class="btn btn-primary">More</a>
            </div>
          </div>
        </div>
      </div>
    </div>
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
  </body>
</html>

이미지 위에 텍스트 넣기, 가로로 배열하기

마크업이 복잡해지지만, 이미지 위에 텍스트가 오버레이되게 하거나, 이미지와 텍스트를 가로로 배열할 수도 있습니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap 4</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
  </head>
  <body>
    <div class="container">
      <div class="row">
        <div class="col-4">
          <p>Card</p>
          <div class="card">
            <img src="images/card-image.png" alt="" class="card-img" />
            <div class="card-img-overlay">
              <h5 class="card-title">Lorem</h5>
              <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sed sem ut malesuada.</p>
            </div>
          </div>
        </div>
        <div class="col-8">
          <p>Card</p>
          <div class="card">
            <div class="row no-gutters">
              <div class="col-4">
                <img src="images/card-image.png" alt="" class="card-img" />
              </div>
              <div class="col-8">
                <div class="card-body">
                  <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sed sem ut malesuada.</p>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
  </body>
</html>

배경색 만들기

bg-primary 등을 추가하여 Bootstrap의 기본색들로 배경색을 정할 수 있습니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap 4</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
  </head>
  <body>
    <div class="container">
      <div class="row">
        <div class="col-4">
          <p>Card</p>
          <div class="card text-white bg-primary">
            <div class="card-header">
              My Card
            </div>
            <div class="card-body">
              <h5 class="card-title">Lorem</h5>
              <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sed sem ut malesuada.</p>
            </div>
          </div>
        </div>
        <div class="col-4">
          <p>Card</p>
          <div class="card text-white bg-success">
            <div class="card-header">
              My Card
            </div>
            <div class="card-body">
              <h5 class="card-title">Lorem</h5>
              <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sed sem ut malesuada.</p>
            </div>
          </div>
        </div>
        <div class="col-4">
          <p>Card</p>
          <div class="card text-white bg-dark">
            <div class="card-header">
              My Card
            </div>
            <div class="card-body">
              <h5 class="card-title">Lorem</h5>
              <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sed sem ut malesuada.</p>
            </div>
          </div>
        </div>
      </div>
    </div>
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
  </body>
</html>

같은 카테고리의 다른 글
Bootstrap 4 / Navs / 목록으로 메뉴 만들기

Bootstrap 4 / Navs / 목록으로 메뉴 만들기

홈페이지의 메뉴는 보통 ul 태그로 만듭니다. 메뉴 구성하기에는 편하지만, 디자인하는 것은 손이 많이 갑니다. 가로로 배열하고 마커를 없애고, 정렬을 정하고... 하지만 Bootstrap을 이용하면 몇 개의 class를 추가하는 것만으로 쉽게 메뉴를 디자인할 수 있습니다. 메뉴 만들기 메뉴를 만드는 방법은 다음 두 가지가 있습니다. 결과는 같지만 마크업이 다릅니다. 주의할 점은, 두 번째 방법은 flex를 ...

Bootstrap 4 / Pagination / 이전 또는 다음 페이지로 연결하는 링크 꾸미기

Bootstrap 4 / Pagination / 이전 또는 다음 페이지로 연결하는 링크 꾸미기

글이 많을 때 다음 글 또는 이전 글, 다음 글 목록 또는 이전 글 목록으로 이동하는 링크를 만듭니다. 이를 페이지네이션(Pagination)이라고 하는데, Bootstrap에서는 페이지네이션을 쉽게 꾸밀 수 있습니다. 기본 ul의 클래스를 pagination, li의 클래스를 page-item, a의 클래스를 page-link로 정하면 가로로 배열된 페이지네이션이 만들어집니다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bootstrap 4</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"> <style> p { ...

Bootstrap 4 / Cards / 카드 만들기

Bootstrap 4 / Cards / 카드 만들기

콘텐츠 목록을 보여줄 때 카드형 배열을 많이 사용합니다. Bootstrap을 이용하면 카드 목록을 쉽게 만들 수 있습니다. 기본 카드를 만드는 기본적인 마크업은 다음과 같습니다. <div class="card"> <div class="card-header"> My Card </div> <img src="images/card-image.png" alt="" /> <div class="card-body"> <h5 class="card-title">Lorem</h5> <p class="card-text">Lorem ...

Bootstrap 4 / List Group / 목록 꾸미기

Bootstrap 4 / List Group / 목록 꾸미기

List Group list-group로 목록을 꾸밀 수 있습니다. ul 요소에 사용하는 것이 기본이나, 링크나 버튼에서 적용 가능합니다. List groups are a flexible and powerful component for displaying a series of content. Modify and extend them to support just about any content within. 기본 가장 기본적인 리스트 그룹입니다. ul 요소에는 .list-group를, li 요소에는 .list-group-item를 추가합니다. <!doctype html> <html ...

Bootstrap 4 / Badge / New, 숫자 등 작은 라벨 만들기

Bootstrap 4 / Badge / New, 숫자 등 작은 라벨 만들기

Badge 새 글일 경우 New를 붙이거나, 글 목록에 댓글 개수를 보여주는 것을 보신 적이 있을 겁니다. Bootsrap의 Badge를 이용하면 쉽게 모양을 꾸밀 수 있습니다. 기본 클래스에 'badge badge-primary' 등을 붙이면 배지가 만들어집니다. 글자 크기는 em 단위로 정해져 있어서, 주위 글자 크기에 맞게 조정됩니다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> ...

Bootstrap 4 / Layout / .container, .row, .col

Bootstrap 4 / Layout / .container, .row, .col

.container Bootstrap에서 레이아웃은 .container, .row, .col로 만듭니다. 표(table)와 구성이 비슷합니다. .container는 table, .row는 tr, .col은 td에 대응한다고 보면 됩니다. .container로 내용이 들어갈 공간의 가로폭을 정합니다. .container, .container-sm, .container-md, .container-lg, .container-xl, .container-fluid를 사용할 수 있고, 해상도에 대한 container의 크기는 다음과 같습니다.   576px 미만 576px 이상 768px 이상 992px 이상 1200px 이상 .container 100% 540px 720px 960px 1140px .container-sm 100% 540px 720px 960px 1140px .container-md 100% 100% 720px 960px 1140px .container-lg 100% 100% 100% 960px 1140px .container-xl 100% 100% 100% 100% 1140px .container-fluid 100% 100% 100% 100% 100% 예제 - .container, .container-sm .contaner의 크기를 확인할 수 있는 ...

Bootstrap 4 / Alerts / 닫을 수 있는 메시지 만들기

Bootstrap 4 / Alerts / 닫을 수 있는 메시지 만들기

Alert Alert는 방문자에게 특정 메시지를 보여줄 때 주로 사용합니다. 메시지에 맞게 색을 고를 수 있으며, 닫기 버튼을 추가할 수 있습니다. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages. Alert 만들기 클래스의 값으로 'alert alert-primary' 등을 추가하면 Alert가 만들어집니다. primary, secondary alert, success, danger, warning, info, ...

Bootstrap 4 / Popovers / 클릭했을 때 메시지 나오게 하기

Bootstrap 4 / Popovers / 클릭했을 때 메시지 나오게 하기

Popovers Popover를 이용하여 요소를 클릭했을 때 메시지가 있는 작은 창을 띄울 수 있습니다. 아래는 예제 실행 영상입니다. 예제 1 요소에 다음과 같은 속성을 추가합니다. data-toggle="popover" title="Popover title" data-content="Lorem Ipsum Dolor Lorem Ipsum Dolor Lorem Ipsum Dolor" data-toggle : 스크립트와 연결할 때 사용합니다. title : 메시지의 제목입니다. 내용과 구문되어 나옵니다. data-content : 메시지의 내용입니다. 다음과 같은 스크립트를 추가합니다. <script> ...

Bootstrap 4 / Buttons / 버튼 꾸미기

Bootstrap 4 / Buttons / 버튼 꾸미기

Buttons CSS로 꾸밀 때 손이 많이 가는 것 중의 하나가 버튼입니다. Bootstrap을 사용하면 여러 색의 버튼을 쉽게 만들 수 있습니다. 기본 클래스의 값으로 btn btn-xxx를 추가하면 버튼이 꾸며집니다. xxx에 들어갈 문자열에 따라 색이 달라집니다. 버튼에 마우스를 올리면 좀 더 진한 색으로 바뀝니다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bootstrap 4</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"> </head> <body> <div class="container"> <div class="row"> <div ...

Bootstrap 4 / Button Group / 버튼 묶음 만들기

Bootstrap 4 / Button Group / 버튼 묶음 만들기

Button Group 버튼을 연속하여 만들면 가로로 배열되고, 버튼 사이에 간격이 있습니다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bootstrap 4</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> </head> <body> <div class="container"> ...