HTML <thead> hidden Attribute

The hidden attribute on a <thead> tag hides the table header. Althought the table header is not visible, its position on the page is maintained.

Example

#

A hidden attribute on a <thead>.
The table header is not visible.

Denice Hobermann
Paulo Cornell
<style>
  table.tb { width:300px; border-collapse: collapse; }
  .tb th, .tb td { border: solid 1px #777; padding: 5px; }
  .tb thead { background-color:lightblue; }
</style>

<table class="tb">
  <thead hidden>
    <tr>
      <th>First name</th>
      <th>Last name</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>Denice</td>
      <td>Hobermann</td>
    </tr>
    <tr>
      <td>Paulo</td>
      <td>Cornell</td>
    </tr>
  </tbody>
</table>

Using hidden

The hidden attribute hides the <thead> element.

You can specify either 'hidden' (without value) or 'hidden="hidden"'. Both are valid.

A hidden <thead> element is not visible, but it maintains its position on the page.

Removing the hidden attribute makes it re-appear.


Syntax

<thead hidden>
or
<thead hidden="hidden">

Values

#

Value Description
hidden Use 'hidden' or hidden='hidden'. Both are valid.

More Examples

Clicking the button toggles the hidden attribute on the <thead> element.

First name Last name
Denice Hobermann
Paulo Cornell

<style>
  table.tbl { width:300px; border-collapse: collapse; }
  .tbl th, .tbl td { border: solid 1px #777; padding: 5px; }
  .tbl thead { background-color:lightblue; }
</style>

<table class="tbl">
  <thead id="mythead">
    <tr>
      <th>First name</th>
      <th>Last name</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>Denice</td>
      <td>Hobermann</td>
    </tr>
    <tr>
      <td>Paulo</td>
      <td>Cornell</td>
    </tr>
  </tbody>
</table>

<br />
<button onclick="toggle(this)">Hide thead</button>

<script>
  let toggle = button => {
    let element = document.getElementById("mythead");
    let hidden = element.getAttribute("hidden");

    if (hidden) {
       element.removeAttribute("hidden");
       button.innerText = "Hide thead";
    } else {
       element.setAttribute("hidden", "hidden");
       button.innerText = "Show thead";
    }
  }
</script>

Code explanation

Initially, the <thead> is visible.

Clicking the button calls JavaScript that toggles the hidden attribute.

With the hidden attribute the table header is invisible.


Browser support

Here is when hidden support started for each browser:

Chrome
1.0 Sep 2008
Firefox
1.0 Sep 2002
IE/Edge
1.0 Aug 1995
Opera
1.0 Jan 2006
Safari
1.0 Jan 2003

You may also like

 Back to <thead>
Guides