"City"는 rowspan="2"로 두 제목 행에 걸치고, 각 월은 colspan="2"로 두 열에 걸쳐요. <colgroup> 요소는 scope="colgroup"이 가리키는 열 묶음을 정의해요. 그러면 스크린 리더가 Rome의 31 셀에서 "Rome, July, High, 31"이라고 말해 줄 수 있어요. 표의 나머지 구조는 HTML table을 보세요.
병합은 진짜 구조에만 쓰세요
병합은 표를 스크린 리더로 읽기 어렵게 하고, 정렬, 필터링, 스프레드시트로 복사하기도 어렵게 해요. 데이터가 정말로 묶여 있는 곳(합계, 하위 열 위의 제목, 두 시간짜리 수업)에만 쓰세요. 병합이 많이 필요한 표라면 더 단순한 표 두 개가 더 명확할 때가 많아요.
자주 하는 실수
덮인 셀을 그대로 둠.colspan="2" 셀은 셀 두 개를 대신해요. 원래 셀 중 하나를 지우세요.
rowspan 아래 행들을 잊음. 그 행마다 셀이 하나씩 적어야 해요.
<tr>에 colspan을 씀.<td>와 <th>에서만 동작해요.
시각적 레이아웃에 병합을 씀. 레이아웃용 표에서 페이지 전체를 가로지르는 배너 행 같은 경우예요. 레이아웃에는 CSS grid를 쓰세요.
"전체 너비"라는 뜻으로 colspan="100%"를 씀. 브라우저는 앞쪽 숫자만 읽어서 이 셀은 100개 열에 걸치고 표에 빈 열을 추가해요. 값은 열 개수를 나타내는 정수예요.
자주 묻는 질문
HTML에서 colspan은 무슨 일을 하나요?
colspan은 <td>나 <th>를 여러 열에 걸쳐 늘려요. <td colspan="3">은 그 행에서 셀 세 개의 자리를 차지해요. 그러면 그 행은 다른 행보다 셀이 두 개 적어야 해요.
HTML에서 rowspan은 무슨 일을 하나요?
rowspan은 셀을 여러 행에 걸쳐 아래로 늘려요. <td rowspan="2">는 자기 행과 그 아래 행을 채워요. 위의 셀이 이미 그 열을 차지하고 있으니, 다음 행에서는 그 열을 빼야 해요.
한 셀에 colspan과 rowspan을 함께 쓸 수 있나요?
네. <td colspan="2" rowspan="2">는 2열 × 2행 블록을 차지해요. 그 셀이 지나가는 모든 행은 자기 셀이 두 개씩 적어야 해요.
표에서 셀 하나가 왜 튀어나와 있나요?
병합을 계산했을 때 어떤 행의 셀이 다른 행보다 많은 거예요. 보통 rowspan 아래 행이 이미 덮인 열의 셀을 그대로 갖고 있거나, colspan이 있는 행이 원래 셀을 모두 남겨 둔 경우예요. 남는 <td>를 지우세요.
colspan의 최댓값은 얼마인가요?
브라우저는 colspan을 1000, rowspan을 65534로 제한해요. colspan에서 0이나 숫자로 시작하지 않는 값은 1로 취급돼요.