<th>
태그의 정의 및 사용법
<th>
태그는
테이블의 헤더(table header) 셀을 나타냅니다.
HTML 테이블에는 두 가지 종류의 셀이 있습니다.
헤더 셀(table header cell) | 헤더 정보를 포함하는 셀입니다. 흔히 '제목 셀'이라고도 불립니다.
( <th> 태그에 해당) |
---|---|
데이터 셀(table data cell) | 데이터 정보를 포함하는 셀입니다. 흔히 '내용 셀'이라고도 불립니다.
( <td> 태그에 해당) |
헤더(table header) 셀은
열(column), 행(row), 또는 특정 셀 그룹(group of cells)과 연관된 데이터의 유형을 정의하는 셀입니다. 흔히 '제목 셀'이라고도 불립니다. 이런 이유는 <th>
태그가 테이블 데이터(<td>
) 셀을 설명하거나 분류하는 제목 역할을 하기 때문입니다.
마크업 규칙
테이블 셀의 행(가로 방향, table row)을 나타내는 <tr>
태그 내에 셀을 마크업하면 구성된 셀을 한 줄의 가로 방향으로 배치하는 행이 만들어집니다.
데모
다음의 데모로 <th>
태그의 사용 방법을 확인해 보세요.
코드 부연설명
<caption>
태그는 오직 부모 테이블의 설명 또는 제목을 나타내는 캡션입니다.
scope="col"
은 scope
속성을 참고하세요!
메뉴 | 가격 |
---|---|
라면 | 5,000 |
김밥 | 4,000 |
구현 설명
- 마크업한
<th>
태그는 기본적으로 브라우저에서 글꼴의 굵기(font-weight
)가 굵은 글꼴(bold
)로 표시되며, 텍스트의 정렬(text-align
)이 가운데(center
)로 표시됩니다. - 마크업한
<td>
태그는 기본적으로 브라우저에서 기본 스타일이 없이 렌더링됩니다. <tr>
태그 내부의 셀(<td>
또는<th>
태그)은 서로 아래에 배치되지 않고 같은 행에서 서로 가로 방향으로 정렬됩니다.<tr>
태그 다음에 후속으로 다른<tr>
태그를 작성하면 새로운 테이블 행이 만들어집니다.- 테이블에 세 개의 행을 원한다면 세 개의
<tr>
태그를 만들고, 각각의 행 내부에는 원하는 셀(<td>
또는<th>
태그)로 구성합니다.
테이블의 셀을 구분하기 위해서 데모에서 사용된 <th>
와 <td>
태그에 CSS로 간단하게 스타일을 설정하겠습니다.
메뉴 | 가격 |
---|---|
라면 | 5,000 |
김밥 | 4,000 |
'실제 적용된 모습'을 보면, <th>
태그가 더욱 '제목 셀'처럼 보이는 것을 볼 수 있습니다.
'메뉴'에 해당하는 셀은 '라면'과 '김밥'이라는 데이터 셀의 '제목 셀'이고, '가격'에 해당하는 셀은 '5,000'과 '4,000'이라는 데이터 셀의 '제목 셀'입니다.
이처럼 <th>
태그는 데이터 셀의 제목 셀, 즉 '헤더(table header) 셀'을 나타냅니다.
속성
<th>
태그는 모든 전역 속성을 사용할 수 있습니다.
또한, 다음의 속성들을 사용할 수 있습니다.
colspan
이 속성은 헤더 셀(<th>
) 또는 데이터 셀(<td>
)이 확장되어 걸쳐 있는 테이블 열(column)의 수를 나타냅니다.
기본값은 1
이며, 0
보다 크고 1000
보다 작거나 같은 정수여야 합니다. (음수 값은 유효하지 않습니다.)
예제
scope="colgroup"
, scope="row"
는 scope
속성을 참고하세요!
주간 운동 시간 | |
---|---|
월요일 | 1시간 |
화요일 | 1.5시간 |
수요일 | 2시간 |
rowspan
이 속성은 헤더 셀(<th>
) 또는 데이터 셀(<td>
)이 확장되어 걸쳐 있는 테이블 행(row)의 수를 나타냅니다.
기본값은 1
이며, 0
보다 크고 65534
보다 작거나 같은 정수여야 합니다. (음수 값은 유효하지 않습니다.)
예제
scope="rowgroup"
, scope="row"
는 scope
속성을 참고하세요!
주간 운동 시간 | 월요일 | 1시간 |
---|---|---|
화요일 | 1.5시간 | |
수요일 | 2시간 |
scope
scope
속성은 헤더 셀(<th>
태그)이 어떤 범위의 데이터 셀에 대한 헤더(또는 제목)인지를 명확하게 지정합니다.
이 속성에서는 네 가지 키워드 값을 사용하며, 사용할 수 있는 키워드 값의 의미는 다음과 같습니다.
row |
헤더 셀(<th> )이 동일한 행(가로 방향, table row, <tr> ) 내의 모든 셀에 적용됩니다. |
---|---|
col |
헤더 셀(<th> )이 동일한 열(세로 방향, table column) 내의 모든 셀에 적용됩니다. |
rowgroup |
헤더 셀(<th> )이 동일한 행(헤더 셀이 속한 가로 방향의 모든 행) 그룹에 속하며, 해당 그룹 내의 모든 셀에 적용됩니다. |
colgroup |
헤더 셀(<th> )이 동일한 열(헤더 셀이 속한 세로 방향의 모든 열) 그룹에 속하며, 해당 그룹 내의 모든 셀에 적용됩니다. |
scope
을 지정하지 않았거나, scope
값이 유효하지 않으면 브라우저가 헤더 셀이 적용되는 범위의 데이터 셀을 자동으로 선택합니다.
예제
아래는 scope 속성의 네 가지 키워드 값(row
, col
, rowgroup
, colgroup
)에 대한 실제적인 HTML 테이블 예제입니다.
row
헤더 셀(<th>
)이 동일한 행(가로 방향, table row, <tr>
) 내의 모든 셀에 적용됩니다.
미국 | 워싱턴 |
---|---|
대한민국 | 서울 |
일본 | 도쿄 |
row
헤더 셀(<th>
)이 동일한 열(세로 방향, table column) 내의 모든 셀에 적용됩니다.
메뉴 | 가격 |
---|---|
라면 | 5,000 |
김밥 | 4,000 |
rowgroup
헤더 셀(<th>
)이 동일한 행(헤더 셀이 속한 가로 방향의 모든 행) 그룹에 속하며, 해당 그룹 내의 모든 셀에 적용됩니다.
주간 운동 시간 | 월요일 | 1시간 |
---|---|---|
화요일 | 1.5시간 | |
수요일 | 2시간 |
colgroup
헤더 셀(<th>
)이 동일한 열(헤더 셀이 속한 세로 방향의 모든 열) 그룹에 속하며, 해당 그룹 내의 모든 셀에 적용됩니다.
주간 운동 시간 | |
---|---|
월요일 | 1시간 |
화요일 | 1.5시간 |
수요일 | 2시간 |
headers
이 속성은 헤더 셀(<th>
)이 속한 테이블의 헤더 셀(<th>
) 중 어떤 것이 해당 <td>
의 제목으로 사용되는지를 지정합니다.
이 속성의 값은 제목으로 사용할 헤더 셀(<th>
)의 id
속성 값으로 사용합니다.
주로 사용되는 경우
복잡한 테이블 구조에서 헤더 셀과 헤더 셀 간의 관계를 명확하게 하기 위해 사용됩니다.
예를 들어, 여러 개의 헤더 셀이 있는 테이블에서 각 헤더 셀이 어떤 헤더 셀에 해당하는지 명시할 수 있습니다.
headers
속성은 <td>
태그에서도 사용 가능한 속성입니다.
예제
일러두기!
일반적으로 열 헤더(column headers )가 있는 테이블 헤더 그룹(head group)은 열(columns)의 정보를 더 쉽게 이해할 수 있도록 구현됩니다. 이러한 테이블 구조에서 <thead>
와 <tbody>
태그는 헤더 및 데이터의 이러한 행을 해당 테이블 헤더 및 본문 섹션으로 그룹화하는 데 사용됩니다. 이 예제에서는 headers
속성에 대한 단순 정보 제공 목적으로만 사용된 것으로, 복잡성을 줄이기 위해서 이러한 구조적 태그는 생략했습니다.
Homework | Exams | Projects | ||||
---|---|---|---|---|---|---|
1 | 2 | Final | 1 | 2 | Final | |
15% | 15% | 15% | 20% | 10% | 10% | 15% |
abbr
abbr
속성의 값은 테이블 헤더 셀(<th>
)에 사용할 대체 레이블(label, 이름표)를 지정합니다. 이 레이블은 해당하는 헤더 셀에 대한 짧고 축약된 형태이지만, 확장된 형태이거나 단순히 다른 표현이라도 괜찮습니다.
이 속성의 값은 화면에 직접 표시되지는 않지만, 접근성 도구(예: 스크린 리더)에서 유용하게 사용됩니다. 특히 테이블의 헤더 셀의 콘텐츠을 반복적으로 읽혀야 하는 상황에서 헤더 셀의 콘텐츠가 길 경우에는 반복적으로 긴 콘텐츠의 내용을 읽어주기 보다는, 지정한 abbr
속성의 값으로 짧고 축약된을 콘텐츠 내용을 먼저 제공함으로써, 사용자 경험을 향상시킬 수 있습니다.
예제
일러두기!
일반적으로 열 헤더(column headers )가 있는 테이블 헤더 그룹(head group)은 열(columns)의 정보를 더 쉽게 이해할 수 있도록 구현됩니다. 이러한 테이블 구조에서 <thead>
와 <tbody>
태그는 헤더 및 데이터의 이러한 행을 해당 테이블 헤더 및 본문 섹션으로 그룹화하는 데 사용됩니다. 이 예제에서는 abbr
속성에 대한 단순 정보 제공 목적으로만 사용된 것으로, 복잡성을 줄이기 위해서 이러한 구조적 태그는 생략했습니다.
Model of car | Year of manufacture | Price of car | ||||
---|---|---|---|---|---|---|
Year 1 | Year 2 | Year 3 | Price 1 | Price 2 | Price 3 | |
Sedan | 2020 | 2021 | 2022 | $20,000 | $22,000 | $24,000 |
SUV | 2019 | 2020 | 2021 | $30,000 | $32,000 | $34,000 |
더 이상 사용되지 않는 속성
예전에는 이 태그만을 위한 다음의 속성들이 있었지만
이제는 명세서에서 삭제된 비표준으로 더 이상 사용되지 않으며 사용해서는 안 됩니다.
아직 많은 학습서나 기존 코드에서 사용하고 있으므로 관심사를 위해서만 아래에 나열합니다.
이 속성들을 각 브라우저별로 아직까지 지원할 수 있지만 모든 사용자에게 적합하지 않을 수도 있습니다.
구현 간에 호환되지 않는 부분이 많을 수도 있으며 향후 동작이 변경될 수도 있습니다.
align
bgcolor
axis
char
charoff
valign
height
width
기술적인 문법 요약
브라우저 호환성
태그 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
<th>
|
1 | 12 | 1 | 1 |
명세서
명세서 사양 | |
---|---|
<th>
|
HTML Standard #the-th-element |