I volontari di MDN non hanno ancora tradotto questo articolo in Italiano. Unisciti a noi e traducilo tu stesso.
Puoi anche consultare l’articolo in English (US).

The HTML Table Body element (<tbody>) encapsulates a set of table row (<tr> elements, indicating that they comprise the body of the table (<table>).

The <tbody> element, along with its cousins <thead> and <tfoot>, provide useful semantic information that can be used when rendering for either screen or printer as well as for accessibility purposes.

Content categories None.
Permitted content Zero or more <tr> elements.
Tag omission The <tbody> element is not a required child element for a parent <table> element to graphically render. However, it must not be present, if its parent <table> element has a <tr> element as a child.
Permitted parents Within the required parent <table> element, the <tbody> element can be added after a <caption>, <colgroup>, <thead> and a <tfoot> element.
Permitted ARIA roles Any
DOM interface HTMLTableSectionElement

Attributes

This element includes the global attributes.

Obsolete attributes

align in HTML 4.01, in HTML5
This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:
  • left, aligning the content to the left of the cell
  • center, centering the content in the cell
  • right, aligning the content to the right of the cell
  • justify, inserting spaces into the textual content so that the content is justified in the cell
  • char, aligning the textual content on a special character with a minimal offset, defined by the char and charoff attributes.

If this attribute is not set, the left value is assumed.

Note: Do not use this attribute as it is obsolete (not supported) in the latest standard.
  • To achieve the same effect as the left, center, right or justify values, use the CSS text-align property on it.
  • To achieve the same effect as the char value, in CSS3, you can use the value of the char as the value of the text-align property Unimplemented.
bgcolor
This attribute defines the background color of each cell of the column. It is one of the 6-digit hexadecimal code as defined in sRGB, prefixed by a '#'. One of the sixteen predefined color strings may be used:
  black = "#000000"   green = "#008000"
  silver = "#C0C0C0"   lime = "#00FF00"
  gray = "#808080"   olive = "#808000"
  white = "#FFFFFF"   yellow = "#FFFF00"
  maroon = "#800000"   navy = "#000080"
  red = "#FF0000"   blue = "#0000FF"
  purple = "#800080"   teal = "#008080"
  fuchsia = "#FF00FF"   aqua = "#00FFFF"
Usage note: Do not use this attribute, as it is non-standard and only implemented some versions of Microsoft Internet Explorer: the <tbody> element should be styled using CSS. To give a similar effect to the bgcolor attribute, use the CSS property background-color, on the relevant <td> or <th> elements.
char in HTML 4.01, in HTML5
This attribute is used to set the character to align the cells in a column on. Typical values for this include a period (.) when attempting to align numbers or monetary values. If align is not set to char, this attribute is ignored.
Note: Do not use this attribute as it is obsolete (and not supported) in the latest standard. To achieve the same effect as the char, in CSS3, you can use the character set using the char attribute as the value of the text-align property Unimplemented.
charoff in HTML 4.01, in HTML5
This attribute is used to indicate the number of characters to offset the column data from the alignment characters specified by the char attribute.
Note: Do not use this attribute as it is obsolete (and not supported) in the latest standard.
valign in HTML 4.01, in HTML5
This attribute specifies the vertical alignment of the text within each row of cells of the table header. Possible values for this attribute are:
  • baseline, which will put the text as close to the bottom of the cell as it is possible, but align it on the baseline of the characters instead of the bottom of them. If characters are all of the size, this has the same effect as bottom.
  • bottom, which will put the text as close to the bottom of the cell as it is possible;
  • middle, which will center the text in the cell;
  • and top, which will put the text as close to the top of the cell as it is possible.
Note: Do not use this attribute as it is obsolete (and not supported) in the latest standard: instead set the CSS vertical-align property on it.

Usage notes

  • If the table includes a <thead> block (to semantically identify header rows), the <tbody> block must come after it.
  • If you use <tbody>, you can't also have table rows (<tr> elements) which are direct children of the <table> but not included inside the <tbody>. All non-header and non-footer rows must be inside the <tbody> if one is used.
  • When printing a document, the <thead> and <tfoot> elements specify information that may be the same—or at least very similar—on every page of a multi-page table, while the <tbody> element's contents generally will differ from page to page.
  • When a table is presented in a screen context (such as a window) which is not large enough to display the entire table, the user agent may let the user scroll the contents of the <thead>, <tbody>, <tfoot>, and <caption> blocks separately from one another for the same parent table.
  • You may use more than one <tbody> per table as long as they are all consecutive. This lets you divide the rows in large tables into sections, each of which may be separately formatted if so desired.

Examples

Below are some examples showing the use of the <tbody> element. For more examples of this tag in use, see the examples for <table>.

Basic example

In this relatively simple example, we create a table listing information about a group of students with a <thead> and a <tbody>, with a number of rows in the body.

HTML

The table's HTML is shown here. Note that all of the body cells including information about students are contained within a single <tbody> element.

<table>
  <thead>
    <tr>
      <th>Student ID</th>
      <th>Name</th>
      <th>Major</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>3741255</td>
      <td>Jones, Martha</td>
      <td>Computer Science</td>
    </tr>
    <tr>
      <td>3971244</td>
      <td>Nim, Victor</td>
      <td>Russian Literature</td>
    </tr>
    <tr>
      <td>4100332</td>
      <td>Petrov, Alexandra</td>
      <td>Astrophysics</td>
    </tr>
  </tbody>
</table>

CSS

The CSS to style our table is shown next.

table {
  border: 2px solid #555;
  border-collapse: collapse;
  font: 16px "Lucida Grande", "Helvetica", "Arial", sans-serif;
}

First, the table's overall style attributes are set, configuring the thickness, style, and color of the table's exterior borders and using border-collapse to ensure that the border lines are shared among adjacent cells rather than each having its own borders with space in between. font is used to establish an initial font for the table.

th, td {
  border: 1px solid #bbb;
  padding: 2px 8px 0;
  text-align: left;
}

Then the style is set for the majority of the cells in the table, including all data cells but also those styles shared between our <td> and <th> cells. The cells are given a light gray outline which is a single pixel thick, padding is adjusted, and all cells are left-aligned using text-align

thead > tr > th {
  background-color: #cce;
  font-size: 18px;
  border-bottom: 2px solid #999;
}

Finally, header cells contained within the <thead> block are given additional styling. They use a darker background-color, a larger font size, and a thicker, darker bottom border than the other cell borders.

Result

The resulting table looks like this:

Multiple bodies

You can create multiple sections within a table by using multiple <tbody> elements. Each may potentially have its own header row or rows; however, there can be only one <thead> per table! Because of that, you need to use a <tr> filled with <th> elements to create headers within each <tbody>. Let's see how that's done.

Let's take the previous example, add some more students to the list, and update the table so that instead of listing each student's major on every row, the students are grouped by major, with heading rows for each major.

Result

First, the resulting table, so you know what we're building:

HTML

The revised HTML looks like this:

<table>
  <thead>
    <tr>
      <th>Student ID</th>
      <th>Name</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th colspan="2">Computer Science</th>
    </tr>
    <tr>
      <td>3741255</td>
      <td>Jones, Martha</td>
    </tr>
    <tr>
      <td>4077830</td>
      <td>Pierce, Benjamin</td>
    </tr>
    <tr>
      <td>5151701</td>
      <td>Kirk, James</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <th colspan="2">Russian Literature</th>
    </tr>
    <tr>
      <td>3971244</td>
      <td>Nim, Victor</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <th colspan="2">Astrophysics</th>
    </tr>
    <tr>
      <td>4100332</td>
      <td>Petrov, Alexandra</td>
    </tr>
    <tr>
      <td>8892377</td>
      <td>Toyota, Hiroko</td>
    </tr>
  </tbody>
</table>

Notice that each major is placed in a separate <tbody> block, the first row of which contains a single <th> element with a colspan attribute that spans the entire width of the table. That heading lists the name of the major contained within the <tbody>.

Then each remaining row in each major's <tbody> consists of two cells: the first for the student's ID and the second for their name.

CSS

Most of the CSS is unchanged. We do, however, add a slightly more subtle style for header cells contained directly within a <tbody> (as opposed to those which reside in a <thead>). This is used for the headers indicating each table section's corresponding major.

tbody > tr > th {
  background-color: #dde;
  border-bottom: 1.5px solid #bbb;
  font-weight: normal;
}

Specifications

Specification Status Comment
HTML Living Standard
The definition of 'tbody element' in that specification.
Living Standard  
HTML5
The definition of 'tbody element' in that specification.
Recommendation  

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic supportChrome Full support 1Edge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
align
Deprecated
Chrome ? Edge Full support YesFirefox No support No
Notes
No support No
Notes
Notes See bug 915
IE Full support YesOpera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile Full support YesFirefox Android No support No
Notes
No support No
Notes
Notes See bug 915
Opera Android ? Safari iOS ? Samsung Internet Android ?
bgcolor
Deprecated
Chrome ? Edge No support NoFirefox No support NoIE Full support YesOpera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile No support NoFirefox Android No support NoOpera Android ? Safari iOS ? Samsung Internet Android ?
char
Deprecated
Chrome ? Edge Full support YesFirefox No support No
Notes
No support No
Notes
Notes See bug 2212
IE Full support YesOpera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile Full support YesFirefox Android No support No
Notes
No support No
Notes
Notes See bug 2212
Opera Android ? Safari iOS ? Samsung Internet Android ?
charoff
Deprecated
Chrome ? Edge Full support YesFirefox No support No
Notes
No support No
Notes
Notes See bug 2212
IE Full support YesOpera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile Full support YesFirefox Android No support No
Notes
No support No
Notes
Notes See bug 2212
Opera Android ? Safari iOS ? Samsung Internet Android ?
valign
Deprecated
Chrome ? Edge Full support YesFirefox No support No
Notes
No support No
Notes
Notes See bug 915
IE Full support YesOpera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile Full support YesFirefox Android No support No
Notes
No support No
Notes
Notes See bug 915
Opera Android ? Safari iOS ? Samsung Internet Android ?

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.

See also

Tag del documento e collaboratori

Hanno collaborato alla realizzazione di questa pagina: mfuji09, SphinxKnight, Sheppy, teoli, arronei, chaser, sideshowbarker, libbymc, fscholz, 1011X, pcat, yaypie, Vdragon, sndsgn, vittore, kscarfone, graingert, fov, medicdude, McGurk
Ultima modifica di: mfuji09,