Bootstrap 4 cards provide a flexible and extensible content container with multiple options for headers, footers, images, and text content.
Cards are widely used for displaying structured content in a stylish and responsive manner.
What This Tutorial Covers:
- Basic Bootstrap 4 card structure
- Adding headers and footers to cards
- Cards with images
- Cards with lists and links
- Card layout variations (grid, columns, deck, group)
- Card alignment and text customization
- Advanced card customization
1. Basic Bootstrap 4 Card
The .card class is used to create a card component.
Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap 4 Cards</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">Card Title</h5>
<p class="card-text">This is a basic card example.</p>
</div>
</div>
</div>
</body>
</html>
Explanation:
- .card creates the card container.
- .card-body is used to wrap the card’s content.
- .card-title adds a heading inside the card.
- .card-text is used for regular text content.
2. Card with Header and Footer
Headers and footers add structure to the card.
Example:
<div class="container mt-4">
<div class="card">
<div class="card-header">Card Header</div>
<div class="card-body">
<h5 class="card-title">Card Title</h5>
<p class="card-text">Card with a header and footer.</p>
</div>
<div class="card-footer">Card Footer</div>
</div>
</div>
Explanation:
- .card-header creates a header section at the top.
- .card-footer adds a footer section at the bottom.
3. Card with Image
Cards can include images at the top or bottom.
Example:
<div class="container mt-4">
<div class="card">
<img src="https://via.placeholder.com/300x150" class="card-img-top" alt="Card Image">
<div class="card-body">
<h5 class="card-title">Card with Image</h5>
<p class="card-text">This card has an image on top.</p>
</div>
</div>
</div>
Explanation:
- .card-img-top places the image at the top of the card.
- The rest of the card remains the same.
To place the image at the bottom, use .card-img-bottom instead.
4. Cards with Lists and Links
Cards can contain lists and links.
Example:
<div class="container mt-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">Card with List</h5>
<p class="card-text">This card contains a list.</p>
<ul class="list-group list-group-flush">
<li class="list-group-item">Item 1</li>
<li class="list-group-item">Item 2</li>
<li class="list-group-item">Item 3</li>
</ul>
</div>
</div>
</div>
To add links inside a card, use .card-link.
<div class="card-body">
<h5 class="card-title">Card with Links</h5>
<p class="card-text">This card contains links.</p>
<a href="#" class="card-link">First Link</a>
<a href="#" class="card-link">Second Link</a>
</div>
5. Card Layout Variations
Card Grid (Row & Columns)
Cards can be placed in a grid layout using .row and .col.
<div class="container mt-4">
<div class="row">
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">Card 1</h5>
<p class="card-text">Content for card 1.</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">Card 2</h5>
<p class="card-text">Content for card 2.</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">Card 3</h5>
<p class="card-text">Content for card 3.</p>
</div>
</div>
</div>
</div>
</div>
Card Deck (Equal Width)
Use .card-deck to create a group of cards with equal width.
<div class="container mt-4">
<div class="card-deck">
<div class="card">
<div class="card-body">
<h5 class="card-title">Card 1</h5>
<p class="card-text">Equal width card.</p>
</div>
</div>
<div class="card">
<div class="card-body">
<h5 class="card-title">Card 2</h5>
<p class="card-text">Equal width card.</p>
</div>
</div>
</div>
</div>
Card Group (Tighter Layout)
Use .card-group to make the cards share borders.
<div class="container mt-4">
<div class="card-group">
<div class="card">
<div class="card-body">
<h5 class="card-title">Card 1</h5>
<p class="card-text">Tighter layout.</p>
</div>
</div>
<div class="card">
<div class="card-body">
<h5 class="card-title">Card 2</h5>
<p class="card-text">Tighter layout.</p>
</div>
</div>
</div>
</div>
6. Card Alignment and Text Customization
Centering Text Inside a Card
<div class="container mt-4">
<div class="card text-center">
<div class="card-body">
<h5 class="card-title">Centered Text</h5>
<p class="card-text">This card's text is centered.</p>
</div>
</div>
</div>
Aligning Text to the Right
<div class="card text-right">
<div class="card-body">
<h5 class="card-title">Right-Aligned Text</h5>
<p class="card-text">This card's text is right-aligned.</p>
</div>
</div>
7. Advanced Card Customization
You can add custom styles to modify Bootstrap cards.
Example:
<style>
.custom-card {
background-color: #ffcc00;
color: black;
border: 2px solid #ff9900;
}
</style>
<div class="container mt-4">
<div class="card custom-card">
<div class="card-body">
<h5 class="card-title">Custom Styled Card</h5>
<p class="card-text">This card has a custom background and border.</p>
</div>
</div>
</div>
Conclusion
Bootstrap 4 cards can be used for a wide range of purposes. By using different layouts, text alignments, images, and links, you can create appealing content sections.