문단을 다단으로 만드는 방법 - columns

columns는 문단을 다단으로 만드는 속성입니다. 단의 최소 가로 크기와 단의 최대 개수가 속성의 값입니다. 예제 문단을 3단으로 만듭니다. 단의 최소 가로 크기가 설정되지 않았으므로 균등한 크기로 단이 만들어집니다.
4 min read

일반적으로 신문을 보면 텍스트 단(column)이 여러 개로 나누어져 있습니다. 웹 문서에서도 이렇게 다단으로 편집할 수 있습니다. column과 관련된 여러 속성으로 쉽게 다단을 편집할 수 있습니다.

목차

 

columns-width - 단의 너비 고정하고 다단을 구성하기

단의 너비 고정하고 다단을 구성하려면 colimn-width 속성을 이용합니다.

column-width : value | auto;
  • value : 단 너비를 정합니다.
  • auto : 단의 너비가 자동 계산됩니다.

 

예제

각 단의 너비를 120px로 고정한 예제입니다.

.multi {
  -webkit-column-width: 120px;
  -moz-column-width: 120px;
  -o-column-width: 120px;
  column-width: 120px;
}

단의 너비가 고정되기 때문에 화면의 너비가 달라지면 단의 개수도 달라집니다.

 

column-count - 단의 개수를 고정하고 다단을 구성하기

브라우저 창의 너비와 상관 없이 단의 개수를 고정하고 다단을 구성하려면 column-count 속성을 사용합니다.

column-count : value | auto;
  • value : 단의 개수를 정합니다.
  • auto : 다른 속성에 따라 단의 너비가 자동 계산됩니다.

 

예제

단의 개수를 3개로 고정해놓은 예제입니다.

.multi {
  -webkit-column-count: 3;
  -moz-column-count: 3;
  -o-column-count: 3;
  column-width: 3;
}

 

column-gap - 단과 단 사이 여백 지정하기

columns-gap 속성은 단과 단 사이에 여백을 지정하는 속성입니다.

column-gap : value | normal;
  • value : 단 여백의 크기 정합니다.
  • normal : 여백을 자동으로 정합니다.

예를 들어 여백의 크기를 20px로 하려면 다음과 같이 합니다.

.multi {
  -webkit-column-gap: 20px;
  -moz-column-gap: 20px;
  -o-column-gap: 20px;
  column-gap: 20px;
}

 

 

column-rule - 구분선의 색상, 스타일, 너비 지정하기

단과 단 사이의 여백에 수직선을 넣기도 합니다. 이때 column-rule 속성을 이용해 선의 스타일을 지정합니다.

column-rule : width | style | color;
  • width : 구분선의 너비를 정합니다.
  • style : 구분선의 형태를 정합니다. 사용 가능한 속성은 여기를 참고해주세요.
  • color : 구분선의 색상을 정합니다.

 

예를 들어 단과 단 사이에 너비가 1px인 회색 점선의 구분선을 추가하려면 다음과 같이합니다.

column-rule-color : #ccc;
column-rule-style : dotted;
column-rule-width : 1px;

또는 다음과 같이 줄여서 표현할 수도 있습니다.

column-rule : 1px dotted #ccc;

 

예제

.multi {
  -webkit-column-rule: 2px dotted #000;
  -moz-column-rule: 2px dotted #000;
  -o-column-rule: 2px dotted #000;
  column-rule: 2px dotted #000;
}

 

break-after - 다단의 위치 지정하기

break-after 속성은 다단을 어디서 부터 시작할지 지정하는 속성입니다.

break-before : column | avoid-column;
break-after : column | avoid-column;
break-inside : column | avoid-column;
속성 단 나눌 위치 동작
단 나눔 단 나누지 않음
break-before 요소 앞 column avoid-column
break-after 요소 뒤
break-inside 요소 안

특정 요소의 앞부분에서 단을 나누려면 break-before:column, 특정 요소의 뒤에서 단을 나누려면 break-after:column을 사용합니다. 반대로 특정 요소의 앞에서 강제로 단을 나누지 않게 하려면 break-before:avoid-column이나 break-after:avoid-column을 사용합니다. 또한 break-inside:avoid-column은 해당 요소 안에서 강제로 단을 나누거나 나뉘지 않게 하는 속성입니다.

 

예제

다음 예제는 제목( <h3> ) 바로 앞에서 다단이 나뉘도록 지정한 것입니다.

.multi h3 {
  break-before: column;
}

 

column-span - 여러 단을 하나로 합치기

column-span 속성으로 단을 합칠 수 있습니다.

column-span : 1 | all;
  • 1 : 기본 값으로 단을 합치지 않습니다.
  • all : 전체 단을 합칩니다. 단의 일부만 합칠 수 없습니다.

 

예제

다음 예제는 3개의 단으로 표시하다가 .no-col이라는 선택자가 적용된 곳에 3개 단을 하나로 합친 것입니다.


다단 관련 속성은 브라우저별 접두사를 붙여 사용해야 합니다. 브라우저별 접두사(prefix) 란 브라우저 별로 CSS3 속성이 다르게 지원되기 때문에 구별할 수 있도록 CSS 속성 앞에 붙이는 접두사를 말합니다. 자세한 내용은 여기를 참고해주세요.

 

기타 CSS 참조

You may like these posts

  • CSS 박스모델이란 웹 문서의 내용을 박스 형태로 정의하는 방법을 가리킵니다. 이 박스 모델들이 모여 웹 문서를 이루죠. 또한 그 안에는 마진과 패딩, 테두리 등 여러 겹의 박스가 들어 있습니다. 이 개념은 CSS에서 자주 사용 되므로 잘 기억해 두어야 합니다. Box Model HTML 요소는…
  • 테두리(border)는 텍스트 단락 뿐만아니라 그림이나 표, 사진, 양식 등 사각 형태를 가진 어떤 요소에나 다양하게 적용할 수 있습니다. 테두리와 관련된 속성에는 테두리 두께, 테두리 스타일, 테두리 색상 등이 있습니다. 하나씩 살펴 보면서 박스 모델의 테두리를 꾸며 보겠습니다. border …
  • 포토 앨범 등에서 사진 주변에 그림자를 추가하면 멋진 효과를 만들 수 있습니다. 이런 그리자 효과도 box-shadow 속성을 사용하면 포토샵 같은 프로그램을 사용하지 않고도 나타낼 수 있습니다. 그림자는 이미지 뿐만 아니라 div 전체 등 지정하는 것에 따라 넣을 수 있는데 이때 box-shad…
  • 박스 테두리를 꾸미긴 꾸몃는데 여진히 심심하다면 박스 모서리를 등글게 만들어 박스 형태를 바꿀 수 있습니다. border-radius 속성을 이용하면 박스 모서리 부분을 손쉽게 다양한 형태로 처리할 수 있습니다. border-radius border-radius 속성은 테두리를 둥글게 만드는 속성입니…
  • 웹 문서에서 여러 요소를 배치하려면 각 요소의 너비를 계산해야 합니다. CSS의 width 속성은 콘텐츠 영역(content area)의 너비를 나타내기 때문에 해당 요소에 적용한 패딩이나 테두리 크기는 따로 계산해서 배치해야 합니다. 이럴 때 box-sizing 속성을 사용하면 콘텐츠 영역의 너비에…
  • 이번에는 박스 모델의 여백인 마진과 패딩을 조절해보겠습니다. 마진과 패딩은 박스 모델에서 활용도가 높으며 웹 문서에서 이미지나 텍스트 등 여러 요소를 자유롭게 배치할 때 유용합니다. margin 속성 - 요소 주변 여백 설정하기 마진(margin)은 현재 요소 주변의 여백입니다. 따라서 마진을 …

Post a Comment