Тег th задает ячейку-заголовок HTML таблицы. Существует также тег td, который задает обычную ячейку таблицы.
Разница между td и th: первый - это обычная ячейка, а второй - это ячейка-заголовок. Пример: Иванов, Петров, Сидоров - это обычные ячейки, а фамилия - это ячейка-заголовок.
По умолчанию текст в ячейке-заголовке стоит по центру и жирный. Это поведение можно поменять с помощью CSS свойств text-align и font-weight.
Для выравнивания можно также воспользоваться атрибутом align. Он считается устаревшим, однако до сих пор работает во всех браузерах (лучше, конечно же, пользоваться CSS).
Тег по умолчанию не блочный и не строчный, а ведет себя как ячейка таблицы. Подробнее см. свойство display.
Пример
Давайте создадим таблицу с ячейками th и td:
<table>
<tr>
<th>Имя</th>
<th>Фамилия</th>
<th>Зарплата</th>
</tr>
<tr>
<td>Иван</td>
<td>Иванов</td>
<td>200$</td>
</tr>
<tr>
<td>Николай</td>
<td>Сидоров</td>
<td>1000$</td>
</tr>
</table>
table, td, th {
border: 1px solid black;
}
: