CSS 멀티 컬럼 + 테이블 정렬·테두리
완전 정리
CSS의 두 가지 "정렬 도구"를 한번에 다룬다. (1) 멀티 컬럼 레이아웃 — 긴 텍스트를 신문처럼 여러 단으로 나누는 column-count 계열 속성. (2) 테이블 디자인 — 셀 안 텍스트의 수직 정렬, 셀 사이 간격, 테두리 병합/분리, 셀 너비 고정과 줄바꿈 처리. 두 영역은 서로 다른 문제처럼 보이지만 "콘텐츠를 격자 안에 깔끔하게 배치한다"는 같은 목표를 가진다.
가장 기본. 한 컨테이너의 텍스트를 N개의 단으로 나눈다.
코코넛 오일 — 중사슬 지방산은 콜레스테롤 수치에 나쁜 영향을 주지 않는 건강한 지방산이다. 라우르산이 풍부해 세균을 물리치는 효과.
블루베리 — 안토시아닌이 시력 향상에 뛰어난 효과. 폴리페놀 성분은 체내 지방세포를 녹여주는 역할.
아몬드 — 오메가3, 비타민 E가 풍부해 항산화 효과. L-아르기닌이 콜레스테롤을 낮춤.
-webkit-, -moz-)는 구버전 호환용. 최신 브라우저는 column-count만 써도 충분하지만, 크로스브라우저 안전을 위해 같이 쓰는 코드가 많다."몇 개로 나눠라"가 아니라 "한 단의 최소 너비는 N px이다"라고 지정하는 방식. 화면이 넓어지면 컬럼 개수가 자동으로 늘어나서 반응형에 유리하다.
코코넛 오일 — 중사슬 지방산. 라우르산. 하루 2~4스푼.
블루베리 — 안토시아닌, 폴리페놀. 시력 + 다이어트.
아몬드 — 오메가3, L-아르기닌. 30g 권장.
- "몇 단으로 나눌지" 지정
- 화면 너비와 무관하게 항상 N단
- 좁은 화면에서 단이 너무 좁아질 수 있음
- "한 단의 최소 너비"를 지정
- 화면 따라 개수 자동 조정
- 반응형에 유리
column-rule은 border와 똑같은 문법. 두께 스타일 색상 순서로 적는다.예:
2px solid #333, 1px dashed gray여러 컬럼 안의 어떤 요소를 모든 단을 가로지르는 한 줄짜리 영역으로 만들 때 사용. 신문 헤드라인이나 강조 박스에 적합.
특정 요소(보통 h3 같은 소제목)를 만나면 그 자리에서 강제로 새 컬럼을 시작하게 한다. 각 항목이 단의 맨 위에서 시작하도록 정렬할 때 유용.
column-count: 4+break-before: column→ 4개 항목이 깔끔히 4단으로 떨어짐- 반응형 사이트라면
column-width권장 text-align: justify함께 쓰면 신문 분위기 완성
테이블 셀에 높이가 있을 때, 텍스트가 기본적으로 가운데(middle)로 위치한다. 이를 위(top)·아래(bottom)·가운데(middle)로 명시할 수 있다.
| top | middle | bottom |
표를 그리면 기본적으로 셀마다 테두리가 따로 그려져서 이중선처럼 보인다. 이를 한 줄로 만들려면 border-collapse: collapse를 쓴다.
- 인접한 셀의 테두리가 합쳐짐
- 한 줄짜리 깔끔한 표
- 대부분의 실무 표에 사용
- 각 셀이 자기 테두리를 가짐
border-spacing으로 셀 사이 간격 조절 가능- 카드형 표 디자인에 적합
| 울산 | 울산 vs 인천 |
| 부산 | 부산 vs 대전 |
| 울산 | 울산 vs 인천 |
| 부산 | 부산 vs 대전 |
border-spacing은 반드시 border-collapse: separate(또는 기본값)일 때만 동작. collapse 상태면 무시된다.표의 셀 너비는 기본적으로 내용에 따라 자동 조정된다(auto). 그러나 한국어 띄어쓰기 없는 긴 단어나 영어 long_string은 셀을 강제로 늘려서 레이아웃이 깨진다.
| 한글로띄어쓰기없기길게붙여쓰기 | long_description_without_space |
| 속성 | 의미 |
|---|---|
table-layout: auto |
(기본) 내용에 맞춰 셀 너비 자동 조정 |
table-layout: fixed |
지정한 width 그대로 고정 — 렌더링 빠름 |
word-break: normal |
(기본) 단어 단위로만 줄바꿈 |
word-break: break-all |
글자 단위로 강제 줄바꿈 (긴 영문 처리) |
word-break: keep-all |
한글 단어 중간 줄바꿈 방지 |
| 실수 | 증상 | 해결 |
|---|---|---|
| collapse + border-spacing 같이 사용 | spacing이 동작 안 함 | collapse 제거 또는 separate로 변경 |
td에 border:none 줬는데 두 줄 보임 |
인접 td의 테두리가 살아있음 | 전체 td에 일괄 적용 |
| 긴 영문에 셀이 이상하게 늘어짐 | auto layout 특성 | table-layout:fixed + word-break:break-all |
| column-count 적용했는데 단이 안 나뉨 | 안에 짧은 텍스트만 있음 | 충분한 텍스트 양 확보 또는 height 지정 |
| vertical-align이 div에서 안 먹힘 | div는 table 셀이 아님 | flex(align-items) 또는 grid 사용 |
Multi-Column · Table 핵심
Tags
'php' 카테고리의 다른 글
| jQuery Mobile data-role 완전 정리 — 페이지·리스트·전환 효과 (0) | 2026.06.10 |
|---|---|
| z-index · visibility · empty-cells 완전 정리 — 요소 겹치기와 숨기기 (1) | 2026.06.10 |
| HTML 게이지 — progress · meter 완전 정리 (0) | 2026.06.09 |
| CSS transform: rotate() — 양수 vs 음수 각도, 시계와 반시계 (0) | 2026.06.09 |
| CSS transform-origin — 같은 회전, 다른 모서리 기준 4가지 (0) | 2026.06.09 |
왕진 블로그

댓글