0
0
mirror of https://github.com/twbs/bootstrap.git synced 2024-12-04 16:24:22 +01:00
Bootstrap/docs/4.0/content/tables.md

18 KiB

layout title description group toc
docs Tables Documentation and examples for opt-in styling of tables (given their prevalent use in JavaScript plugins) with Bootstrap. content true

Examples

Due to the widespread use of tables across third-party widgets like calendars and date pickers, we've designed our tables to be opt-in. Just add the base class .table to any <table>, then extend with custom styles or our various included modifier classes.

Using the most basic table markup, here's how .table-based tables look in Bootstrap. All table styles are inherited in Bootstrap 4, meaning any nested tables will be styled in the same manner as the parent.

{% example html %}

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter
{% endexample %}

You can also invert the colors—with light text on dark backgrounds—with .table-dark.

{% example html %}

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter
{% endexample %}

Table head options

Similar to tables and dark tables, use the modifier classes .thead-light or .thead-dark to make <thead>s appear light or dark gray.

{% example html %}

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter
# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter
{% endexample %}

Striped rows

Use .table-striped to add zebra-striping to any table row within the <tbody>.

{% example html %}

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter
{% endexample %}

{% example html %}

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter
{% endexample %}

Bordered table

Add .table-bordered for borders on all sides of the table and cells.

{% example html %}

# First Name Last Name Username
1 Mark Otto @mdo
2 Mark Otto @TwBootstrap
3 Jacob Thornton @fat
4 Larry the Bird @twitter
{% endexample %}

{% example html %}

# First Name Last Name Username
1 Mark Otto @mdo
2 Mark Otto @TwBootstrap
3 Jacob Thornton @fat
4 Larry the Bird @twitter
{% endexample %}

Hoverable rows

Add .table-hover to enable a hover state on table rows within a <tbody>.

{% example html %}

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter
{% endexample %}

{% example html %}

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter
{% endexample %}

Small table

Add .table-sm to make tables more compact by cutting cell padding in half.

{% example html %}

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter
{% endexample %}

{% example html %}

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter
{% endexample %}

Contextual classes

Use contextual classes to color table rows or individual cells.

  {% for color in site.data.theme-colors %}
  <tr class="table-{{ color.name }}">
    <th scope="row">{{ color.name | capitalize }}</th>
    <td>Column content</td>
    <td>Column content</td>
    <td>Column content</td>
  </tr>{% endfor %}
</tbody>
Type Column heading Column heading Column heading
Active Column content Column content Column content
Default Column content Column content Column content

{% highlight html %}

... {% for color in site.data.theme-colors %} ...{% endfor %} ... {% for color in site.data.theme-colors %} ...{% endfor %} {% endhighlight %}

Regular table background variants are not available with the dark table, however, you may use [text or background utilities]({{ site.baseurl }}/docs/{{ site.docs_version }}/utilities/colors/) to achieve similar styles.

# Column heading Column heading Column heading
1 Column content Column content Column content
2 Column content Column content Column content
3 Column content Column content Column content
4 Column content Column content Column content
5 Column content Column content Column content
6 Column content Column content Column content
7 Column content Column content Column content
8 Column content Column content Column content
9 Column content Column content Column content

{% highlight html %}

... ... ... ... ... ... ... ... ... ... {% endhighlight %}

{% capture callout-include %}{% include callout-warning-color-assistive-technologies.md %}{% endcapture %} {{ callout-include | markdownify }}

Create responsive tables by adding .table-responsive{-sm|-md|-lg|-xl} to any .table to make them scroll horizontally at each max-width breakpoint of 575.99px, 767.99px, 991.99px, and 1119.99px, respectively.

{% capture callout-include %}{% include callout-info-mediaqueries-breakpoints.md %}{% endcapture %} {{ callout-include | markdownify }}

Captions

A <caption> functions like a heading for a table. It helps users with screen readers to find a table and understand what it's about and decide if they want to read it.

{% example html %}

List of users
# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter
{% endexample %}

Responsive tables

Responsive tables allow tables to be scrolled horizontally with ease. Make any table responsive across all viewports by adding .table-responsive class on .table. Or, pick a maximum breakpoint with which to have a responsive table up to by adding .table-responsive{-sm|-md|-lg|-xl}.

{% callout warning %}

Vertical clipping/truncation

Responsive tables make use of overflow-y: hidden, which clips off any content that goes beyond the bottom or top edges of the table. In particular, this can clip off dropdown menus and other third-party widgets. {% endcallout %}

Always responsive

# Table heading Table heading Table heading Table heading Table heading Table heading Table heading Table heading Table heading
1 Table cell Table cell Table cell Table cell Table cell Table cell Table cell Table cell Table cell
2 Table cell Table cell Table cell Table cell Table cell Table cell Table cell Table cell Table cell
3 Table cell Table cell Table cell Table cell Table cell Table cell Table cell Table cell Table cell
# Table heading Table heading Table heading Table heading Table heading Table heading
1 Table cell Table cell Table cell Table cell Table cell Table cell
2 Table cell Table cell Table cell Table cell Table cell Table cell
3 Table cell Table cell Table cell Table cell Table cell Table cell

{% highlight html %}

...
{% endhighlight %}

Breakpoint specific

Use .table-responsive{-sm|-md|-lg|-xl} as needed to create responsive tables up to a particular breakpoint. From that breakpoint and up, the table will behave normally and not scroll horizontally.

{% for bp in site.data.breakpoints %}{% unless bp.breakpoint == "xs" %}
# Table heading Table heading Table heading Table heading Table heading
1 Table cell Table cell Table cell Table cell Table cell
2 Table cell Table cell Table cell Table cell Table cell
3 Table cell Table cell Table cell Table cell Table cell
{% endunless %}{% endfor %}

{% highlight html %} {% for bp in site.data.breakpoints %}{% unless bp.breakpoint == "xs" %}

...
{% endunless %}{% endfor %} {% endhighlight %}