<tbody>
태그의 정의 및 사용법
<tbody>
태그는
테이블의 데이터 본문(table body)에 해당하는 행(<tr>
태그)들의 그룹을 나타냅니다.
이 태그는 테이블에서 구조적 구분과 의미를 명확히 하기 위해 데이터를 포함하는 행들로 구성된 테이블의 본문임을 정의할 때 사용됩니다.
<tbody>
태그의 유용성
<tbody>
태그를 <thead>
(테이블 헤더)와 <tfoot>
(테이블 푸터) 태그과 함께 사용하면,
HTML의 의미론적 측면에서 테이블의 헤더(머리글), 본문, 푸터(바닥글)를 구분하여 더 나은 테이블 구조를 파악하고, 접근성 도구(예: 스크린 리더)나 검색 엔진 등 다양한 보조 기술에서 정보로 활용하는데 도움이 됩니다.
주요 마크업 규칙
전체적인 마크업 규칙은 기술적인 문법 요약을 참고하세요.
데모
상품 | 가격 |
---|---|
커피 | 2,500 |
과자 | 1,500 |
합계 | 4,000 |
속성
<tbody>
태그는 모든 전역 속성만을 사용할 수 있습니다.
더 이상 사용되지 않는 속성
예전에는 이 태그만을 위한 다음의 속성들이 있었지만
이제는 명세서에서 삭제된 비표준으로 더 이상 사용되지 않으며 사용해서는 안 됩니다.
아직 많은 학습서나 기존 코드에서 사용하고 있으므로 관심사를 위해서만 아래에 나열합니다.
이 속성들을 각 브라우저별로 아직까지 지원할 수 있지만 모든 사용자에게 적합하지 않을 수도 있습니다.
구현 간에 호환되지 않는 부분이 많을 수도 있으며 향후 동작이 변경될 수도 있습니다.
align
bgcolor
char
charoff
valign
기술적인 문법 요약
테이블당 두 개 이상의 <tbody>
를 사용
간단한 구조의 테이블에서 <tbody>
태그는 한 개를 사용하는 경우가 많지만,
좀 더 복잡한 구조의 테이블에서는 테이블의 데이터 본문 구조를 구분하기 위해서 두 개 이상의 <tbody>
태그를 사용할 수 있습니다.
이때 마크업 규칙이 있는데, 테이블당 두 개 이상의 <tbody>
태그를 사용할 때에는 <tbody>
와 <tbody>
가 연속적으로 위치해야 합니다.
이렇게 여러 개의 <tbody>
태그를 사용하면 테이블의 데이터 본문을 섹션으로 나눌 수 있기 때문에 데이터 본문의 구조를 파악하는데 좀 더 수월할 수 있습니다.
알아두세요!
테이블당 <thead>
(테이블 헤더)는 없거나 하나만 있을 수 있습니다!
예제
이전 '데모'에사 사용한 테이블을 바탕으로 더 많은 '상품'을 추가하고 '상품'을 '상품카테고리' 별로 그룹화하여 섹션으로 나누겠습니다.
상품 | 가격 |
---|---|
음료 | |
커피 | 2,500 |
생활용품 | |
휴지 | 5,000 |
비누 | 1,500 |
고기류 | |
생선 | 10,000 |
합계 | 19,000 |
<tbody>
를 사용하지(마크업하지) 않았을 때
이럴 경우 다음의 코드 예제와 같이 브라우저는 이 <tr>
태그의 부모로 <tbody>
태그를 암시적으로 마크업에 추가합니다.
table > tr
과 같은 CSS 자식 선택자가 예상대로 작동하지 않거나 전혀 작동하지 않을 수 있습니다.
브라우저 호환성
태그 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
<tbody>
|
1 | 12 | 1 | 1 |
명세서
명세서 사양 | |
---|---|
<tbody>
|
HTML Standard #the-tbody-element |