HTML <th> Tag

The <th> tag defines a header cell in an HTML table. It must be used as a child element of <tr>, which in its turn is declared in the <table> tag. To define a standard data cell the <td> tag is used.

The <th> tag can contain text, image, form, links or any other HTML element, that can be used in the body of the HTML document. The size of the table is automatically adjusted based on the size of its content.

By default, the content of the <th> tag is bold and centered. To change its look you can use CSS styles.

Note, that all the rows in the table contain equal number of cells, which is equivalent to the number of cells in the longest row. If there are less cells in a row, then the browser will automatically fill the row, placing empty cells at the end of it.

If you need to emphasize that there is no data in other cells, then create cell without content where necessary.

The cells added by browser have no borders, and if they go after each other, they will be shown as one integrated cell.

Syntax <th>

<table> 
  <tr> 
    <th>...</th> 
  </tr> 
</table>

Example

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      th, td {
        padding: 10px;
        border: 1px solid #666;
      }
    </style>
  </head>
  <body>
    <table style="width:80%; margin:30px auto; border-collapse:collapse;">
      <tr style="background-color:#1c87c9; color:#fff;">
        <th>Month</th>
        <th>Date</th>
      </tr>
      <tr>
        <td>June</td>
        <td>18.07.2018</td>
      </tr>
    </table>
  </body>
</html>

Result

In this example our headings are "Month" and "Date", which we define using the <th> tags for each of them. Both tags we place in <tr> .

The colspan attribute is generally used with <th> tag to let the content span over multiple columns. Let’s see this in action.

Example

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      th, td {
        padding: 10px;
        border: 1px solid #666;
      }
    </style>
  </head>
  <body>
    <table style="width:80%; margin:30px auto; border-collapse:collapse;">
      <tr style="background-color:#1c87c9; color:#fff;">
        <th colspan="2">Month and Date</th>
      </tr>
      <tr>
        <td>Jun</td>
        <td>18.07.2014</td>
      </tr>
    </table>
  </body>
</html>

Result

In this example the value of colspan attribute is “2”. It means that a header cell should span two columns.

Attributes

Attribute Value Description
abbr text Defines an abbreviated version of the content in a header cell, or an alternative text. (Some user-agents, such as speech readers, may present this description before the content itself)
Not supported in HTML 5.
align left
right
center
Aligns the content in a header cell.
Not supported in HTML 5.
axis category_name Categorizes cells having similar content.
Not supported in HTML 5.
background background Sets the background in a cell.
Not supported in HTML 5.
bgcolor rgb(x,x,x)
#xxxxxx
colorname
Defines the background color of a cell.
Not supported in HTML 5.
bordercolor bordercolor Sets the color of the border.
Not supported in HTML 5.
char character Aligns the content in a header cell to a character. Is used only if attribute align = "char".
Not supported in HTML 5.
charoff number Sets the number of characters the content will be aligned from the character specified by the char attribute. Is used only if attribute align = "char"
Not supported in HTML 5.
colspan number Defines the number of columns a cell should span. The value of the attribute should be a positive integer. Default value is 1.
headers header_id Specifies a space-separated list of header cells that contain information about this cell. The value needs to correspond with the id of the header cell ( set using the id attribute).
height %
pixels
Sets the height of a cell.
Not supported in HTML 5.
nowrap nowrap Specifies that the content inside a cell should not wrap.
Not supported in HTML 5.
rowspan number Specifies the number of rows a cell should span. The value of the attribute should be a positive integer. Default value is 1. It is not recommended to use values higher than 65534, as they will be clipped down to 65534.
scope col
colgroup
row
rowgroup
auto
Defines the cells that the header (defined in the <th> ) element relates to.
Not supported in HTML 5.
sorted reversed
number
reversed number
number reversed
Defines the sort direction of a column.
Not supported in HTML 5.
valign top
middle
bottom
baseline
Specifies vertical alignment of the content inside a cell.
Not supported in HTML 5.
width %
pixels
Sets the width of a cell.
Not supported in HTML 5.

The <th> tag also supports the Global Attributes and the Event Attributes.

Browser support