코딩 스쿨 CSS

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

CSS Multiple Columns

CSS Multiple Columns: 여러 열로 나누어진 콘텐츠 레이아웃

  • *CSS Multiple Columns(멀티 컬럼)**은 텍스트나 콘텐츠를 여러 열로 나누어 표시하는 기능을 제공합니다. 이 기능을 사용하면 읽기 편한 레이아웃을 만들 수 있으며, 특히 텍스트가 많은 콘텐츠에서 유용하게 사용됩니다. 멀티 컬럼은 신문 레이아웃이나 잡지 스타일의 페이지를 만들 때 매우 유용합니다.

1. 기본 구문: column-countcolumn-width

멀티 컬럼 레이아웃을 만들기 위한 가장 기본적인 속성은 **column-count**와 **column-width**입니다. 이 두 속성을 사용하여 콘텐츠가 몇 개의 열로 나눠질지, 또는 각 열의 너비가 어떻게 설정될지를 정의할 수 있습니다.

1) column-count: 열의 개수 지정

column-count 속성은 열의 개수를 지정합니다. 이 속성을 설정하면 콘텐츠가 지정된 수의 열로 나누어집니다.

예시: 열 개수 지정

.multicol {
  column-count: 3; /* 3개의 열로 나누기 */
  column-gap: 20px; /* 열 사이의 간격 설정 */
}
<div class="multicol">
  <p>이 텍스트는 세 개의 열로 나뉩니다. 텍스트가 여러 열에 걸쳐 자동으로 배치됩니다.</p>
</div>

이 코드는 콘텐츠를 세 개의 열로 나누고, 각 열 사이에 20px 간격을 설정합니다.

2) column-width: 열의 너비 지정

column-width 속성은 각 열의 너비를 설정합니다. 브라우저는 가능한 많은 열을 만들기 위해 지정된 너비에 맞게 콘텐츠를 나눕니다. 즉, 열의 최소 너비를 설정하면, 브라우저가 화면 크기에 따라 열을 자동으로 나누게 됩니다.

예시: 열 너비 지정

.multicol {
  column-width: 200px; /* 열의 최소 너비를 200px로 설정 */
  column-gap: 20px;
}

이 코드는 각 열의 너비가 200px 이상이 되도록 설정하고, 화면 너비에 따라 열 개수가 자동으로 결정됩니다.

2. 열 사이 간격: column-gap

column-gap 속성은 각 열 사이의 간격을 조정합니다. 기본값은 1em이며, 픽셀(px) 또는 퍼센트(%) 단위로 설정할 수 있습니다.

예시: 열 간격 설정

.multicol {
  column-count: 3;
  column-gap: 30px; /* 열 사이의 간격을 30px로 설정 */
}

이 코드는 각 열 사이에 30px의 간격을 설정하여, 열 간에 충분한 공간을 확보합니다.

3. 열 나누기 선: column-rule

column-rule 속성은 열 사이에 구분선을 추가할 때 사용됩니다. 이 속성은 테두리(border) 속성과 유사하게 두께, 스타일, 색상을 지정할 수 있습니다.

예시: 열 나누기 선 추가

.multicol {
  column-count: 3;
  column-gap: 20px;
  column-rule: 2px solid #333; /* 두께 2px, 실선, 색상 #333 */
}

이 코드는 두께 2px, 검정색(#333) 실선으로 열을 구분합니다.

4. 열 안에서의 콘텐츠 흐름

멀티 컬럼에서 각 열로 텍스트가 자연스럽게 흐르며, 콘텐츠가 자동으로 분배됩니다. 그러나 특정 콘텐츠를 다음 열로 넘기고 싶을 때break-before, break-after, break-inside 속성을 사용할 수 있습니다.

예시: 다음 열로 넘기기

h2 {
  break-before: column; /* 제목 앞에서 다음 열로 넘기기 */
}

이 코드는 <h2> 태그 앞에서 새로운 열이 시작되도록 설정합니다.

5. 반응형 멀티 컬럼 레이아웃

CSS 멀티 컬럼은 반응형 디자인에도 유용하게 사용할 수 있습니다. **미디어 쿼리(media query)**를 통해 화면 크기에 따라 열 개수나 너비를 조정할 수 있습니다.

예시: 반응형 멀티 컬럼

.multicol {
  column-width: 300px; /* 열의 최소 너비를 300px로 설정 */
  column-gap: 20px;
}

@media (max-width: 768px) {
  .multicol {
    column-width: 200px; /* 작은 화면에서는 열의 너비를 200px로 줄임 */
  }
}

이 코드는 화면 너비가 768px 이하일 때 열 너비200px로 줄여 작은 화면에서도 적절한 열 배치를 유지하도록 합니다.

6. 실전 예시: 뉴스 기사 레이아웃

예시: 3열 뉴스 기사 레이아웃

<div class="news-articles">
  <h2>오늘의 주요 뉴스</h2>
  <p>오늘의 주요 뉴스 기사 내용이 여기에 표시됩니다. 다수의 뉴스 기사가 여러 열에 걸쳐 나타나게 됩니다.</p>
  <p>더 많은 뉴스 기사와 관련된 정보는 각 열에 균등하게 배치되어 표시됩니다.</p>
  <p>최신 업데이트 및 속보에 대한 정보도 이곳에서 확인할 수 있습니다.</p>
</div>

.news-articles {
  column-count: 3;
  column-gap: 25px;
  column-rule: 2px solid #ddd;
}

h2 {
  column-span: all; /* 제목은 모든 열에 걸쳐 표시 */
}

이 코드는 뉴스 기사를 세 개의 열로 나누고, 열 사이에 구분선을 추가한 신문 스타일의 레이아웃을 만듭니다. 또한 제목은 모든 열에 걸쳐 표시되도록 설정합니다.

7. 실전 예시: 반응형 잡지 스타일 레이아웃

예시: 잡지 스타일 레이아웃

<div class="magazine">
  <h2>Magazine Title</h2>
  <p>잡지 콘텐츠가 여러 열로 나뉘어 표시됩니다. 각 열에는 이미지, 텍스트가 배치되어 시각적으로 균형 잡힌 레이아웃을 구성합니다.</p>
  <p>이 텍스트는 반응형 레이아웃으로 처리되어 화면 크기에 따라 열이 조정됩니다.</p>
  <p>더 많은 콘텐츠와 이미지가 각 열에 표시됩니다.</p>
</div>

.magazine {
  column-count: 3;
  column-gap: 30px;
}

@media (max-width: 768px) {
  .magazine {
    column-count: 2; /* 작은 화면에서는 두 개의 열로 변경 */
  }
}

@media (max-width: 480px) {
  .magazine {
    column-count: 1; /* 모바일 화면에서는 한 개의 열로 변경 */
  }
}

이 코드는 화면 크기에 따라 세 개의 열에서 두 개의 열, 한 개의 열로 변하는 반응형 잡지 스타일 레이아웃을 만듭니다.


CSS Multiple Columns는 콘텐츠를 여러 열로 나누어 표시하는 강력한 레이아웃 기능을 제공합니다. 이를 통해 신문 스타일이나 잡지 스타일의 페이지를 쉽게 구현할 수 있으며, 반응형 웹 디자인에도 유용하게 적용할 수 있습니다. column-count, column-width, column-gap, column-rule 등의 속성을 적절히 사용하여 콘텐츠가 시각적으로 매력적이고 읽기 쉬운 방식으로 배치되도록 할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com