본문 바로가기

HTML 5

<table>, <th>, <tr>, <td> : 표를 만드는 태그

HTML 에서는 표를 table, 행(가로)를 row, 열(세로)을 column, 행과 열이 만나는 영역을 cell 이라고 한다.

 

1. 기본적인 표 만들기

<table border="1">
	<tr>
    	<td>내용 1</td>
        <td>내용 2</td>
    </tr>
    <tr>
    	<td>내용 3</td>
        <td>내용 4</td>
    </tr>
</table>

<tr> 태그는 row 를 나타내고, <td> 태그는 cell 을 나타낸다.

즉 위의 예시는 2개의 행 그리고 2개의 열인 표를 만든 것이다.

 

table의 속성 중에는 border 라는 속성이 있는데, 이 값을 지정해 주지 않으면 윤곽선이 보이지 않아 구분이 힘들다.

 

 

2. <th> 태그 : 제목 셀

<table border="1">
	<tr>
    	<th></th>
        <th>제목 1</th>
        <th>제목 2</th>
    </tr>
	<tr>
    	<th>제목 3</th>
    	<td>내용 1</td>
        <td>내용 2</td>
    </tr>
    <tr>
    	<th>제목 4</th>
    	<td>내용 3</td>
        <td>내용 4</td>
    </tr>
</table>

예시와 같이 각 행과 열의 제목을 달아 줄 수 있으며,

<th> 태그로 작성하는 내용은 <td> 태그로 작성하는 내용에 비하여 더 굵게 작성된다는 특징을 가지고 있다.

 

 

 

3. colspan, rowspan 속성 : 행 또는 열 합치기

<table border="1">
	<tr>
    	<th></th>
        <th>제목 1</th>
        <th>제목 2</th>
        <th>제목 3</th>
        <th>제목 4</th>
    </tr>
	<tr>
    	<th>제목 5</th>
    	<td>내용 1</td>
        <td>내용 2</td>
        <td>내용 3</td>
        <td>내용 4</td>
    </tr>
    <tr>
    	<th>제목 6</th>
    	<td colspan="4">내용 5</td>
    </tr>
</table>

colspan 속성은 다음과 같이 같은 열에 있는 cell 을 합치는 기능이다.

합치고자 하는 셀의 개수를 작성해주면 쉽게 응용 가능하다.

<table border="1">
	<tr>
    	<th></th>
        <th>제목 1</th>
        <th>제목 2</th>
        <th>제목 3</th>
        <th>제목 4</th>
    </tr>
	<tr>
    	<th>제목 5</th>
    	<td>내용 1</td>
        <td>내용 2</td>
        <td>내용 3</td>
        <td rowspan="2">내용 4</td>
    </tr>
    <tr>
    	<th>제목 6</th>
    	<td>내용 5</td>
        <td>내용 6</td>
        <td>내용 7</td>
    </tr>
</table>

rowspan 은 반대로 같은 행에 있는 cell 을 합치는 속성이다.

colspan 과 마찬가지로 몇 개의 셀을 합칠 것인지 지정해 주기만 하면 되기 때문에 활용이 쉽다.

 

 

 

4. <caption> 태그, <figcaption> 태그 : 표 제목 붙이기

 

표에 제목을 붙이는 태그는 <caption> 태그<figcaption> 태그 이렇게 두 가지가 있다. 

 

👉 <caption> 태그

<table border="1">
	<caption>
        <strong>표 제목</strong>
        <p>표 제목</p>
        표 제목
    </caption>
	<tr>
    	<th></th>
        <th>제목 1</th>
        <th>제목 2</th>
    </tr>
	<tr>
    	<th>제목 3</th>
    	<td>내용 1</td>
        <td>내용 2</td>
    </tr>
    <tr>
    	<th>제목 4</th>
    	<td>내용 3</td>
        <td>내용 4</td>
    </tr>
</table>

<caption> 태그는 <table> 태그 바로 다음에 위치하며, 별 다른 옵션을 주지 않아도 가운데 정렬이 된다는 특징이 있다.

 

 

👉 <figcaption> 태그

 

figure 와 caption 의 합성어로 <figure> 태그와 함께 쓰인다는 특징을 가진다.

<figure>
    <figcaption>
        <p>table 위의 표 제목</p>
    </figcaption>
        <table border="1">
            <tr>
                <th></th>
                <th>제목 1</th>
                <th>제목 2</th>
            </tr>
            <tr>
                <th>제목 3</th>
                <td>내용 1</td>
                <td>내용 2</td>
            </tr>
            <tr>
                <th>제목 4</th>
                <td>내용 3</td>
                <td>내용 4</td>
            </tr>
        </table>
    <figcaption>
        <p>table 아래의 표 제목</p>
    </figcaption>
</figure>

 

<figcaption> 은 <figure> 태그와 함께 써야 하고, 위치는 <table> 태그 위 또는 아래에 올 수 있다.

<caption> 태그와 달리 가운데 정렬이 되지 않고 왼쪽 정렬이 된다는 특징이 있다.

 

 

 

5. aria-describedby 속성 : 표 설명

<p id="summary">
	다음 표는 표를 만드는 예시 작업입니다.
</p>
<table border="1" aria-describedby="summary">
	<tr>
    	<th></th>
        <th>제목 1</th>
        <th>제목 2</th>
    </tr>
	<tr>
    	<th>제목 3</th>
    	<td>내용 1</td>
        <td>내용 2</td>
    </tr>
    <tr>
    	<th>제목 4</th>
    	<td>내용 3</td>
        <td>내용 4</td>
    </tr>
</table>

화면 낭독 기능 사용 시에 표에 대한 설명을 할 수 있도록 하는 기능이다.

설명을 나타내는 부분에 id 값을 주고 해당 id 값을 table 의 aria-describedby 속성에 명시해주면 된다.

 

 

 

6. <thead>, <tbody>, <tfoot> 태그 - 표 구조 정의

<table border="1">
	<thead>
        <tr>
            <th></th>
            <th>제목 1</th>
            <th>제목 2</th>
        </tr>
	</thead>
    <tbody>
        <tr>
            <th>제목 3</th>
            <td>내용 1</td>
            <td>내용 2</td>
        </tr>
        <tr>
            <th>제목 4</th>
            <td>내용 3</td>
            <td>내용 4</td>
        </tr>
	</tbody>
    <tfoot>
    	<tr>
        	<th>제목 5</th>
            <td>내용 5</td>
            <td>내용 6</td>
        </tr>
    </tfoot>
</table>

표의 구조를 좀 더 명시적으로 구분하기 위한 것으로 

화면 상에는 표현되지 않지만 코드 작성 시, 그리고 화면 낭독 기능에 유리하다.

 

 

7. <col>, <colgroup> 태그 : 여러 열 묶어 스타일 지정하기

<table border="1">
        <colgroup>
                <col span="2" style="background-color:blue;">
                     파란색
                <col span="1" style="background-color:yellow;">
        </colgroup>
        <thead>
            <tr>
                <th></th>
                <th>제목 1</th>
                <th>제목 2</th>
            </tr>
        </thead>
        <tbody>
            
            <tr>
                <th>제목 3</th>
                <td>내용 1</td>
                <td>내용 2</td>
            </tr>
            <tr>
                <th>제목 4</th>
                <td>내용 3</td>
                <td>내용 4</td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <th>제목 5</th>
                <td>내용 5</td>
                <td>내용 6</td>
            </tr>
        </tfoot>
    </table>

같은 열을 묶어서 스타일을 적용할 수 있는 태그이다.

주의해야 할 점은 <caption> 태그 뒤에 쓰여야 하며, <tr>, <td> 태그 전에 쓰여야 한다는 것이다.

 

그렇다면 행을 묶어서 하는 것은 어떻게 할까?

바로 <tr>로 묶어 적용하는 것이다. 

같은 열을 묶어서 스타일 적용 : <col>, <colgroup>
같은 행을 묶어서 스타일 적용 : <tr>

'HTML 5' 카테고리의 다른 글

<a> : 링크 만들기  (0) 2022.10.01
<img> : 이미지 삽입하기  (0) 2022.10.01
<ul>, <ol> : 태그로 목록 만들기  (1) 2022.09.30
Text Tag : Inline Level  (0) 2022.09.30
Text Tag : Block Level  (0) 2022.09.30