Table captions help describe what the table is about. Placing captions correctly makes tables easier to understand and more accessible.
Table caption placement in Bootsrap
<table class="table"> <caption>Caption text here</caption> <!-- table rows and cells --> </table>
The <caption> tag must be the first child inside the <table> element.
Bootstrap styles the caption by default to appear above the table with some spacing.
<table class="table"> <caption>Monthly Sales Report</caption> <thead> <tr><th>Month</th><th>Sales</th></tr> </thead> <tbody> <tr><td>January</td><td>$1000</td></tr> </tbody> </table>
caption-top class places the caption above the table.<table class="table caption-top"> <caption>Top 5 Products</caption> <tbody> <tr><td>Product A</td></tr> </tbody> </table>
caption-bottom class places the caption below the table.<table class="table caption-bottom"> <caption>Summary Data</caption> <tbody> <tr><td>Data 1</td></tr> </tbody> </table>
This page shows three tables with captions placed in different positions using Bootstrap classes. The first table uses the default caption placement above the table. The second uses caption-top to explicitly place the caption above. The third uses caption-bottom to place the caption below the table.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Bootstrap Table Caption Placement</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" /> </head> <body> <main class="container my-4"> <h1>Table Caption Placement Example</h1> <section> <h2>Caption Above (default)</h2> <table class="table"> <caption>Fruits and Prices</caption> <thead> <tr><th>Fruit</th><th>Price</th></tr> </thead> <tbody> <tr><td>Apple</td><td>$1.00</td></tr> <tr><td>Banana</td><td>$0.50</td></tr> </tbody> </table> </section> <section> <h2>Caption Above with <code>caption-top</code></h2> <table class="table caption-top"> <caption>Vegetables and Prices</caption> <thead> <tr><th>Vegetable</th><th>Price</th></tr> </thead> <tbody> <tr><td>Carrot</td><td>$0.80</td></tr> <tr><td>Broccoli</td><td>$1.20</td></tr> </tbody> </table> </section> <section> <h2>Caption Below with <code>caption-bottom</code></h2> <table class="table caption-bottom"> <caption>Drinks and Prices</caption> <thead> <tr><th>Drink</th><th>Price</th></tr> </thead> <tbody> <tr><td>Water</td><td>$0.30</td></tr> <tr><td>Juice</td><td>$1.50</td></tr> </tbody> </table> </section> </main> </body> </html>
Always put the <caption> tag as the first child inside the <table> for proper HTML structure.
Bootstrap provides caption-top and caption-bottom classes to control caption placement easily.
Captions improve accessibility by giving screen readers a clear description of the table.
Use the <caption> tag inside tables to add descriptive titles.
Bootstrap styles captions and lets you place them above or below with classes.
Proper caption placement helps all users understand your tables better.
Practice
<caption> tag be placed in a Bootstrap table to add a descriptive title?Solution
Step 1: Understand the HTML structure for tables and correct placement
The<caption>tag must be inside the<table>element to be valid and recognized by browsers. It should come immediately after the opening<table>tag, before<thead>or<tbody>.Final Answer:
Directly inside the<table>element, before any<thead>or<tbody>-> Option CQuick Check:
Caption tag inside table = Directly inside the<table>element, before any<thead>or<tbody>[OK]
- Placing caption outside the table
- Putting caption inside tbody
- Adding caption after closing table tag
Solution
Step 1: Recall Bootstrap caption placement classes and identify for bottom placement
Bootstrap provides.caption-topto place captions above and.caption-bottomto place captions below the table. The class.caption-bottommoves the caption below the table.Final Answer:
.caption-bottom-> Option BQuick Check:
Caption below table =.caption-bottom[OK]
- Using .caption-top for bottom placement
- Using non-existent classes like .caption-right
- Not adding any class for placement
<table class="table">
<caption class="caption-top">Monthly Sales</caption>
<thead>
<tr><th>Product</th><th>Sales</th></tr>
</thead>
<tbody>
<tr><td>Apples</td><td>100</td></tr>
</tbody>
</table>Solution
Step 1: Check the caption class and Bootstrap placement behavior
The caption has the classcaption-top, which Bootstrap uses to place captions above the table. Withcaption-top, the caption text "Monthly Sales" will appear visually above the table rows and headers.Final Answer:
Caption appears above the table -> Option DQuick Check:
caption-top class = caption above table [OK]
- Confusing caption-top with caption-bottom
- Thinking caption goes inside table cells
- Assuming caption is hidden without class
<table class="table">
<thead>
<caption>User Data</caption>
<tr><th>Name</th><th>Age</th></tr>
</thead>
<tbody>
<tr><td>Alice</td><td>30</td></tr>
</tbody>
</table>Solution
Step 1: Check caption placement rules and identify error
The<caption>tag must be a direct child of the<table>element, not inside<thead>or<tbody>. The caption is placed inside<thead>, which is invalid HTML and will cause rendering issues.Final Answer:
Caption tag is incorrectly placed inside the thead element -> Option AQuick Check:
Caption must be direct child of table, not inside thead [OK]
- Placing caption inside thead or tbody
- Forgetting to close table tag
- Assuming caption needs Bootstrap class
Solution
Step 1: Understand Bootstrap limitations and best responsive approach
Bootstrap's.caption-topand.caption-bottomclasses do not toggle automatically based on screen size. Place two captions with different classes and use Bootstrap's responsive display classes (liked-none d-sm-block) to show one above on large screens and below on small screens.Final Answer:
Place two captions, one with.caption-topand one with.caption-bottom, then hide/show with responsive utilities -> Option AQuick Check:
Use two captions + responsive classes for placement [OK]
- Using both classes on one caption expecting toggle
- Trying to move caption with CSS only
- Placing caption outside table and using JS unnecessarily
Ready to prove it?
Pass the test and this pattern moves unknown
