AD JB Toolbox 01

CSS / Reference / caption-side

caption-side는 표의 caption이 표 위쪽 또는 아래쪽에 배치되도록 지정합니다. caption은 표의 제목이나 설명을 담는 요소이며, 이 속성은 글자 정렬이나 셀의 순서를 바꾸는 기능이 아닙니다.

문법과 주요 값

table { caption-side: bottom; }
caption { text-align: start; padding-block: 0.5em; }
값 또는 구분 동작과 선택 기준
top 표 위쪽에 캡션 배치
bottom 표 아래쪽에 캡션 배치
inherit 부모로부터 캡션 위치 설정 전달
text-align 캡션 내부의 텍스트 정렬은 별도로 지정

값의 적용 범위와 문법은 MDN의 caption-side 문서에서 확인할 수 있습니다.

실행 예제와 결과 비교

아래 전체 코드를 UTF-8 형식의 caption-side-example.html 파일로 저장한 뒤 브라우저로 여세요. 예제용 CSS는 이 파일 안에만 넣고 사이트 전체 스타일시트에 그대로 붙여 넣지 않습니다.

<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>caption-side 비교 예제</title>
<style>
body { margin: 0; color: #20242b; background: #fff; font: 16px/1.7 "Malgun Gothic", sans-serif; }
#demo { padding: 24px; max-width: 820px; margin: auto; }
h1 { font-size: 22px; margin: 0 0 20px; }
.samples { display: flex; flex-wrap: wrap; gap: 24px; }
.label { margin: 0 0 8px; font-weight: 700; }
table { border-collapse: collapse; }
td { border: 1px solid #006c9c; padding: 10px; }
caption { padding: 8px; font-weight: bold; }
.target { caption-side: bottom; }
.reference { caption-side: top; }
</style>
</head>
<body>
<main id="demo">
<h1>caption-side 적용 비교</h1>
<section class="samples"><table class="target"><caption>월별 판매 수량</caption><tbody><tr><td>내용</td><td></td></tr><tr><td>두 번째</td><td>값</td></tr></tbody></table><table class="reference"><caption>월별 판매 수량</caption><tbody><tr><td>내용</td><td></td></tr><tr><td>두 번째</td><td>값</td></tr></tbody></table></section>
</main>
</body>
</html>

같은 caption이 첫 표 아래와 두 번째 표 위에 표시됩니다. 소스에서 caption을 표 뒤로 옮겨야 하는 것은 아닙니다.

같은 caption이 첫 표 아래와 두 번째 표 위에 표시됩니다.

표 구조를 유지하기

caption은 table의 직접 자식으로 사용하고 표의 내용을 구체적으로 설명합니다. 아래에 표시하려고 caption을 table 밖의 일반 문단으로 바꾸면 표 제목으로서의 연결이 약해질 수 있습니다. 화면 위치와 HTML의 의미를 분리해 생각하세요.

캡션 너비와 쓰기 방향

긴 caption은 표 너비와 주변 레이아웃에 따라 감싸질 수 있습니다. 위·아래라는 표현은 일반적인 가로쓰기 문서의 모습이며 세로쓰기 등에서는 실제 배치 방향을 확인해야 합니다. 캡션과 표 사이 공간은 padding이나 적절한 여백으로 조절합니다.

적용되지 않거나 예상과 다를 때

  • 캡션이 일반 div나 p가 아닌 caption 요소인지 확인합니다.
  • caption 자체에 다른 caption-side 규칙이 적용되어 table에서 받은 값을 덮어쓰는지 확인합니다.
같은 카테고리의 다른 글
CSS / Reference / overflow

CSS / Reference / overflow

overflow의 문법과 주요 값, 실제 적용 조건을 설명합니다. auto 박스는 내용이 긴 만큼 내부를 스크롤할 수 있습니다.

CSS / Reference / clip

CSS / Reference / clip

clip의 문법과 주요 값, 실제 적용 조건을 설명합니다. 200×120px 도형에서 네 변 안쪽 20px만큼 제외한 영역이 보입니다.

CSS / Reference / background-color

CSS / Reference / background-color

background-color의 문법과 주요 값, 실제 적용 조건을 설명합니다. 반투명 배경색은 뒤의 노란 배경과 합성되지만 글자 자체는 함께 투명해지지 않습니다.

CSS / Reference / font-family

CSS / Reference / font-family

font-family의 문법과 주요 값, 실제 적용 조건을 설명합니다. 두 예문은 서로 다른 글꼴 계열을 요청합니다.

CSS / Reference / background-size

CSS / Reference / background-size

background-size의 문법과 주요 값, 실제 적용 조건을 설명합니다. 예제의 배경 도형은 160×80 비율입니다.

CSS / Reference / color

CSS / Reference / color

color의 문법과 주요 값, 실제 적용 조건을 설명합니다. 글자 색과 currentColor 테두리가 함께 바뀝니다.

CSS / Reference / box-sizing

CSS / Reference / box-sizing

box-sizing의 문법과 주요 값, 실제 적용 조건을 설명합니다. 첫 박스의 전체 너비는 200 + 40 + 10 = 250px입니다.

CSS / Reference / word-wrap

CSS / Reference / word-wrap

word-wrap의 문법과 주요 값, 실제 적용 조건을 설명합니다. 첫 박스는 긴 주소를 영역에 맞춰 나누지만 normal은 정상적인 줄바꿈 기회가 부족하면 넘칠 수 있습니다.

CSS / Reference / opacity

CSS / Reference / opacity

opacity의 문법과 주요 값, 실제 적용 조건을 설명합니다. 첫 박스에서는 흰 글자도 함께 흐려지고 두 번째 박스에서는 배경만 뒤의 색과 섞입니다.

CSS / Reference / text-indent

CSS / Reference / text-indent

text-indent의 문법과 주요 값, 실제 적용 조건을 설명합니다. 첫 번째 문단은 첫 줄만 안으로 들어갑니다.