caption-side
        
        
          
                Baseline
                
                  Widely available
                
                 *
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
The caption-side CSS property puts the content of a table's <caption> on the specified side. The values are relative to the writing-mode of the table.
Try it
caption-side: top;
caption-side: bottom;
<section class="default-example" id="default-example">
  <table class="transition-all" id="example-element">
    <caption>
      Famous animals
    </caption>
    <tr>
      <th>Name</th>
      <th>Location</th>
    </tr>
    <tr>
      <td>Giraffe</td>
      <td>Africa</td>
    </tr>
    <tr>
      <td>Penguin</td>
      <td>Antarctica</td>
    </tr>
    <tr>
      <td>Sloth</td>
      <td>South America</td>
    </tr>
    <tr>
      <td>Tiger</td>
      <td>Asia</td>
    </tr>
  </table>
</section>
table {
  font-size: 1.2rem;
  text-align: left;
  color: black;
}
th,
td {
  padding: 0.2rem 1rem;
}
caption {
  background: #ffcc33;
  padding: 0.5rem 1rem;
}
tr {
  background: #eeeeee;
}
tr:nth-child(even) {
  background: #cccccc;
}
Syntax
/* Directional values */
caption-side: top;
caption-side: bottom;
/* Global values */
caption-side: inherit;
caption-side: initial;
caption-side: revert;
caption-side: revert-layer;
caption-side: unset;
The caption-side property is specified as one of the keyword values listed below.
Values
- top
- 
The caption box should be positioned at the block start side of the table. 
- bottom
- 
The caption box should be positioned at the block end side of the table. 
Note:
The CSS logical properties and values module defines two logical values, inline-start and inline-end, to position the caption box at the inline start edge and inline end edge of the table, respectively. These values are not supported in any browsers.
Formal definition
| Initial value | top | 
|---|---|
| Applies to | table-caption elements | 
| Inherited | yes | 
| Computed value | as specified | 
| Animation type | discrete | 
Formal syntax
caption-side =
top |
bottom
Examples
>Setting captions above and below
HTML
<table class="top">
  <caption>
    Caption ABOVE the table
  </caption>
  <tr>
    <td>Some data</td>
    <td>Some more data</td>
  </tr>
</table>
<br />
<table class="bottom">
  <caption>
    Caption BELOW the table
  </caption>
  <tr>
    <td>Some data</td>
    <td>Some more data</td>
  </tr>
</table>
CSS
.top caption {
  caption-side: top;
}
.bottom caption {
  caption-side: bottom;
}
table {
  border: 1px solid red;
}
td {
  border: 1px solid blue;
}
Result
Specifications
| Specification | 
|---|
| Cascading Style Sheets Level 2> # propdef-caption-side> | 
| CSS Logical Properties and Values Level 1> # caption-side> | 
Browser compatibility
Loading…
See also
- <caption>
- CSS table module
- CSS logical properties and values module