0
0
mirror of https://github.com/twbs/bootstrap.git synced 2024-11-30 12:24:19 +01:00
Bootstrap/docs/components/card.md

721 lines
28 KiB
Markdown
Raw Normal View History

2014-08-06 02:12:24 +02:00
---
layout: docs
2014-08-06 02:12:24 +02:00
title: Cards
description: Bootstrap Cards provide a flexible and extensible content container with multiple variants and options.
group: components
2014-08-06 02:12:24 +02:00
---
A **card** is a flexible and extensible content container. It includes options for headers and footers, a wide variety of content, contextual background colors, and powerful display options.
2015-04-23 10:30:55 +02:00
If you're familiar with Bootstrap 3, cards replace our old panels, wells, and thumbnails. Similar functionality to those components is available as modifier classes for cards.
2014-08-06 02:12:24 +02:00
2015-05-29 10:58:52 +02:00
## Contents
* Will be replaced with the ToC, excluding the "Contents" header
{:toc}
2015-05-28 23:07:34 +02:00
## Example
2014-08-06 02:12:24 +02:00
2016-12-23 01:41:56 +01:00
Cards are built with as little markup and styles as possible, but still manage to deliver a ton of control and customization. Built with flexbox, they offer easy alignment and mix well with other Bootstrap components.
Below is an example of a basic card with mixed content and a fixed width. Cards have no fixed width to start, so they'll naturally fill the full width of it's parent element. This is easily customized with our various [sizing options](#sizing).
2014-08-06 02:12:24 +02:00
{% example html %}
2016-12-23 01:41:56 +01:00
<div class="card" style="width: 20rem;">
2015-08-27 23:26:00 +02:00
<img class="card-img-top" data-src="holder.js/100px180/" alt="Card image cap">
2015-05-28 23:07:34 +02:00
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
2015-05-28 23:07:34 +02:00
</div>
2014-08-06 02:12:24 +02:00
</div>
{% endexample %}
2015-05-28 23:07:34 +02:00
## Content types
2015-04-23 10:33:19 +02:00
Cards support a wide variety of content, including images, text, list groups, links, and more. Below are examples of what's supported.
2015-04-23 10:33:19 +02:00
### Blocks
2015-05-28 04:00:11 +02:00
The building block of a card is the `.card-block`. Use it whenever you need a padded section within a card.
{% example html %}
<div class="card">
2015-05-28 23:07:34 +02:00
<div class="card-block">
This is some text within a card block.
2015-05-28 23:07:34 +02:00
</div>
2015-05-28 04:00:11 +02:00
</div>
2015-05-28 23:07:34 +02:00
{% endexample %}
### Titles, text, and links
Card titles are used by adding `.card-title` to a `<h*>` tag. In the same way, links are added and placed next to each other by adding `.card-link` to a `<a>` tag.
2015-05-28 23:07:34 +02:00
2016-03-11 14:21:15 +01:00
Subtitles are used by adding a `.card-subtitle` to an `<h*>` tag. If the `.card-title` and the `.card-subtitle` items are placed in a `.card-block` item, the card title and subtitle are aligned nicely.
2015-05-28 23:07:34 +02:00
{% example html %}
<div class="card">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
2015-05-28 23:07:34 +02:00
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
<a href="#" class="card-link">Card link</a>
<a href="#" class="card-link">Another link</a>
</div>
2015-04-23 10:33:19 +02:00
</div>
{% endexample %}
### Images
2015-05-28 23:07:34 +02:00
`.card-img-top` places an image to the top of the card. With `.card-text`, text can be added to the card. Text within `.card-text` can also be styled with the standard HTML tags.
2015-05-28 04:00:11 +02:00
2015-04-23 10:33:19 +02:00
{% example html %}
<div class="card">
<img class="card-img-top" data-src="holder.js/100px180/?text=Image cap" alt="Card image cap">
<div class="card-block">
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
2015-04-23 10:33:19 +02:00
</div>
</div>
{% endexample %}
### List groups
Create lists of content in a card with a flush list group.
2015-05-28 04:00:11 +02:00
{% example html %}
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Cras justo odio</li>
<li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item">Vestibulum at eros</li>
</ul>
2015-05-28 04:00:11 +02:00
</div>
{% endexample %}
### Kitchen sink
2014-08-06 02:12:24 +02:00
Mix and match multiple content types to create the card you need, or throw everything in there. Shown below are image styles, blocks, text styles, and a list group—all wrapped in a fixed-width card.
2014-08-06 02:12:24 +02:00
{% example html %}
<div class="card" style="width: 20rem;">
<img class="card-img-top" data-src="holder.js/100px180/?text=Image cap" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item">Cras justo odio</li>
<li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item">Vestibulum at eros</li>
</ul>
<div class="card-block">
<a href="#" class="card-link">Card link</a>
<a href="#" class="card-link">Another link</a>
</div>
2014-08-06 02:12:24 +02:00
</div>
{% endexample %}
### Header and footer
2014-08-06 02:12:24 +02:00
Add an optional header and/or footer within a card.
{% example html %}
<div class="card">
<div class="card-header">
Featured
</div>
2015-05-28 23:07:34 +02:00
<div class="card-block">
<h4 class="card-title">Special title treatment</h4>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
{% endexample %}
Card headers can be styled by adding `.card-header` to `<h*>` elements.
{% example html %}
<div class="card">
<h3 class="card-header">Featured</h3>
<div class="card-block">
<h4 class="card-title">Special title treatment</h4>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
2015-05-28 23:07:34 +02:00
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
2014-08-06 02:12:24 +02:00
</div>
2015-05-29 10:58:52 +02:00
{% endexample %}
2014-08-06 02:12:24 +02:00
2015-05-29 10:58:52 +02:00
{% example html %}
2014-08-06 02:12:24 +02:00
<div class="card">
<div class="card-header">
Quote
</div>
2015-05-28 23:07:34 +02:00
<div class="card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
</blockquote>
</div>
2014-08-06 02:12:24 +02:00
</div>
{% endexample %}
{% example html %}
<div class="card text-center">
2014-08-06 02:12:24 +02:00
<div class="card-header">
Featured
</div>
2015-05-28 23:07:34 +02:00
<div class="card-block">
<h4 class="card-title">Special title treatment</h4>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
2014-08-06 02:12:24 +02:00
<div class="card-footer text-muted">
2 days ago
</div>
</div>
{% endexample %}
## Sizing
2016-01-18 03:55:24 +01:00
Cards assume no specific `width` to start, so they'll be 100% wide unless otherwise stated. You can change this as needed with custom CSS, grid classes, grid Sass mixins, or utilities.
### Using grid markup
Using the grid, wrap cards in columns and rows as needed.
{% example html %}
<div class="row">
<div class="col-sm-6">
<div class="card">
<div class="card-block">
<h3 class="card-title">Special title treatment</h3>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="card">
<div class="card-block">
<h3 class="card-title">Special title treatment</h3>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
</div>
</div>
{% endexample %}
### Using utilities
Use our handful of [available sizing utilities]({{ site.baseurl }}/utilities/sizing-and-positioning/#width-and-height) to quickly set a card's width.
{% example html %}
<div class="card w-75">
<div class="card-block">
<h3 class="card-title">Card title</h3>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Button</a>
</div>
</div>
<div class="card w-50">
<div class="card-block">
<h3 class="card-title">Card title</h3>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Button</a>
</div>
</div>
{% endexample %}
### Using custom CSS
Use custom CSS in your stylesheets or as inline styles to set a width.
{% example html %}
<div class="card" style="width: 20rem;">
<div class="card-block">
<h3 class="card-title">Special title treatment</h3>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
{% endexample %}
2016-01-18 03:55:24 +01:00
2016-12-23 01:44:33 +01:00
## Text alignment
You can quickly change the text alignment of any card—in its entirety or specific parts—with our [text align classes]({{ site.baseurl }}/utilities/typography/#text-alignment).
{% example html %}
<div class="card" style="width: 20rem;">
<div class="card-block">
<h4 class="card-title">Special title treatment</h4>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
<div class="card text-center" style="width: 20rem;">
<div class="card-block">
<h4 class="card-title">Special title treatment</h4>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
<div class="card text-right" style="width: 20rem;">
<div class="card-block">
<h4 class="card-title">Special title treatment</h4>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
{% endexample %}
2016-12-23 01:44:39 +01:00
## Navigation
Add some navigation to a card's header (or block) with Bootstrap's [nav components]({{ site.baseurl }}/components/navs/).
2016-01-18 03:55:24 +01:00
{% example html %}
<div class="card text-center">
2016-01-18 03:55:24 +01:00
<div class="card-header">
<ul class="nav nav-tabs card-header-tabs">
2016-01-18 03:55:24 +01:00
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
</div>
<div class="card-block">
<h4 class="card-title">Special title treatment</h4>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
{% endexample %}
{% example html %}
<div class="card text-center">
2016-01-18 03:55:24 +01:00
<div class="card-header">
<ul class="nav nav-pills card-header-pills">
2016-01-18 03:55:24 +01:00
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
</div>
<div class="card-block">
<h4 class="card-title">Special title treatment</h4>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
{% endexample %}
## Images
2014-08-06 02:12:24 +02:00
Cards include a few options for working with images. Choose from appending "image caps" at either end of a card, overlaying images with card content, or simply embedding the image in a card.
### Image caps
Similar to headers and footers, cards can include top and bottom "image caps"—images at the top or bottom of a card.
2014-08-06 02:12:24 +02:00
{% example html %}
<div class="card mb-3">
2015-08-27 23:26:00 +02:00
<img class="card-img-top" data-src="holder.js/100px180/" alt="Card image cap">
2015-05-28 23:07:34 +02:00
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
2014-08-06 02:12:24 +02:00
</div>
<div class="card">
2015-05-28 23:07:34 +02:00
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
2015-08-27 23:26:00 +02:00
<img class="card-img-bottom" data-src="holder.js/100px180/" alt="Card image cap">
2014-08-06 02:12:24 +02:00
</div>
{% endexample %}
### Image overlays
2014-08-06 02:12:24 +02:00
Turn an image into a card background and overlay your card's text. Depending on the image, you may or may not need `.card-inverse` (see below).
2014-08-06 02:12:24 +02:00
{% example html %}
<div class="card card-inverse">
2015-08-27 23:26:00 +02:00
<img class="card-img" data-src="holder.js/100px270/#55595c:#373a3c/text:Card image" alt="Card image">
2014-08-06 02:12:24 +02:00
<div class="card-img-overlay">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
</div>
{% endexample %}
2016-12-23 01:45:48 +01:00
## Card styles
Cards include various options for customizing their backgrounds, borders, and color.
### Inverted text
2014-08-06 02:12:24 +02:00
By default, cards use dark text and assume a light background. You can reverse that by toggling the `color` of text within, as well as that of the card's subcomponents, with `.card-inverse`. Then, specify a dark `background-color` and `border-color` to go with it.
2015-08-20 11:53:35 +02:00
You can also use `.card-inverse` with the [contextual backgrounds variants](#background-variants).
2014-08-06 02:12:24 +02:00
{% example html %}
<div class="card card-inverse" style="background-color: #333; border-color: #333;">
2015-05-28 23:07:34 +02:00
<div class="card-block">
<h3 class="card-title">Special title treatment</h3>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
2015-05-28 23:07:34 +02:00
</div>
2014-08-06 02:12:24 +02:00
</div>
{% endexample %}
2016-12-23 01:45:48 +01:00
### Background variants
2014-08-06 02:12:24 +02:00
Cards include their own variant classes for quickly changing the `background-color` and `border-color` of a card. **Darker colors require the use of `.card-inverse`.**
2014-08-06 02:12:24 +02:00
{% example html %}
<div class="card card-inverse card-primary mb-3 text-center">
2015-05-28 23:07:34 +02:00
<div class="card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
</blockquote>
</div>
2014-08-06 02:12:24 +02:00
</div>
<div class="card card-inverse card-success mb-3 text-center">
2015-05-28 23:07:34 +02:00
<div class="card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
</blockquote>
</div>
2014-08-06 02:12:24 +02:00
</div>
<div class="card card-inverse card-info mb-3 text-center">
2015-05-28 23:07:34 +02:00
<div class="card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
</blockquote>
</div>
2014-08-06 02:12:24 +02:00
</div>
<div class="card card-inverse card-warning mb-3 text-center">
2015-05-28 23:07:34 +02:00
<div class="card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
</blockquote>
</div>
2014-08-06 02:12:24 +02:00
</div>
<div class="card card-inverse card-danger text-center">
2015-12-09 10:02:04 +01:00
<div class="card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
</blockquote>
</div>
</div>
{% endexample %}
{% capture callout-include %}{% include callout-warning-color-assistive-technologies.md %}{% endcapture %}
{{ callout-include | markdownify }}
2016-12-23 01:45:48 +01:00
### Outline cards
2015-12-09 10:02:04 +01:00
2016-01-06 10:11:22 +01:00
In need of a colored card, but not the hefty background colors they bring? Replace the default modifier classes with the `.card-outline-*` ones to style just the `border-color` of a card.
2015-12-09 10:02:04 +01:00
{% example html %}
<div class="card card-outline-primary mb-3 text-center">
2015-12-09 10:02:04 +01:00
<div class="card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
</blockquote>
</div>
</div>
<div class="card card-outline-secondary mb-3 text-center">
2015-12-09 10:02:04 +01:00
<div class="card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
</blockquote>
</div>
</div>
<div class="card card-outline-success mb-3 text-center">
2015-12-09 10:02:04 +01:00
<div class="card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
</blockquote>
</div>
</div>
<div class="card card-outline-info mb-3 text-center">
2015-12-09 10:02:04 +01:00
<div class="card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
</blockquote>
</div>
</div>
<div class="card card-outline-warning mb-3 text-center">
2015-12-09 10:02:04 +01:00
<div class="card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
</blockquote>
</div>
</div>
<div class="card card-outline-danger text-center">
2015-05-28 23:07:34 +02:00
<div class="card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
</blockquote>
</div>
2014-08-06 02:12:24 +02:00
</div>
{% endexample %}
## Card layout
2014-08-06 02:12:24 +02:00
In addition to styling the content within cards, Bootstrap includes a few options for laying out series of cards. For the time being, **these layout options are not yet responsive**.
2014-08-06 02:12:24 +02:00
### Card groups
Use card groups to render cards as a single, attached element with equal width and height columns. Card groups use `display: flex;` to achieve their uniform sizing.
2014-08-06 02:12:24 +02:00
{% example html %}
<div class="card-group">
<div class="card">
2015-08-27 23:26:00 +02:00
<img class="card-img-top" data-src="holder.js/100px180/" alt="Card image cap">
2015-05-28 23:07:34 +02:00
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
2014-08-06 02:12:24 +02:00
</div>
<div class="card">
2015-08-27 23:26:00 +02:00
<img class="card-img-top" data-src="holder.js/100px180/" alt="Card image cap">
2015-05-28 23:07:34 +02:00
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
2014-08-06 02:12:24 +02:00
</div>
<div class="card">
2015-08-27 23:26:00 +02:00
<img class="card-img-top" data-src="holder.js/100px180/" alt="Card image cap">
2015-05-28 23:07:34 +02:00
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
2014-08-06 02:12:24 +02:00
</div>
</div>
{% endexample %}
When using card groups with footers, their content will automatically line up.
2014-08-06 02:12:24 +02:00
2016-12-23 01:46:29 +01:00
{% example html %}
<div class="card-group">
<div class="card">
<img class="card-img-top" data-src="holder.js/100px180/" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
</div>
<div class="card-footer">
<small class="text-muted">Last updated 3 mins ago</small>
</div>
</div>
<div class="card">
<img class="card-img-top" data-src="holder.js/100px180/" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
</div>
<div class="card-footer">
<small class="text-muted">Last updated 3 mins ago</small>
</div>
</div>
<div class="card">
<img class="card-img-top" data-src="holder.js/100px180/" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p>
</div>
<div class="card-footer">
<small class="text-muted">Last updated 3 mins ago</small>
</div>
</div>
</div>
{% endexample %}
2016-12-23 01:47:10 +01:00
### Card decks
Need a set of equal width and height cards that aren't attached to one another? Use card decks. By default, card decks require two wrapping elements: `.card-deck-wrapper` and a `.card-deck`. We use table styles for the sizing and the gutters on `.card-deck`. The `.card-deck-wrapper` is used to negative margin out the `border-spacing` on the `.card-deck`.
2014-08-06 02:12:24 +02:00
{% example html %}
2016-12-22 05:26:17 +01:00
<div class="card-deck">
<div class="card">
<img class="card-img-top" data-src="holder.js/100px200/" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
2014-08-06 02:12:24 +02:00
</div>
2016-12-22 05:26:17 +01:00
</div>
<div class="card">
<img class="card-img-top" data-src="holder.js/100px200/" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
2014-08-06 02:12:24 +02:00
</div>
2016-12-22 05:26:17 +01:00
</div>
<div class="card">
<img class="card-img-top" data-src="holder.js/100px200/" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
2014-08-06 02:12:24 +02:00
</div>
</div>
</div>
{% endexample %}
2016-12-23 01:47:10 +01:00
Just like with card groups, card footers in decks will automatically line up.
2014-08-06 02:12:24 +02:00
2016-12-23 01:47:10 +01:00
{% example html %}
<div class="card-deck">
<div class="card">
<img class="card-img-top" data-src="holder.js/100px180/" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
</div>
<div class="card-footer">
<small class="text-muted">Last updated 3 mins ago</small>
</div>
</div>
<div class="card">
<img class="card-img-top" data-src="holder.js/100px180/" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
</div>
<div class="card-footer">
<small class="text-muted">Last updated 3 mins ago</small>
</div>
</div>
<div class="card">
<img class="card-img-top" data-src="holder.js/100px180/" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p>
</div>
<div class="card-footer">
<small class="text-muted">Last updated 3 mins ago</small>
</div>
</div>
</div>
{% endexample %}
### Card columns
Cards can be organized into [Masonry](http://masonry.desandro.com)-like columns with just CSS by wrapping them in `.card-columns`. Cards are built with CSS `column` properties instead of flexbox for easier alignment. Cards are ordered from top to bottom and left to right.
**Heads up!** Your mileage with card columns may vary. To prevent cards breaking across columns, we must set them to `display: inline-block` as `column-break-inside: avoid` isn't a bulletproof solution yet.
2014-08-06 02:12:24 +02:00
{% example html %}
<div class="card-columns">
<div class="card">
<img class="card-img-top img-fluid" data-src="holder.js/100px160/" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title that wraps to a new line</h4>
<p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
</div>
2014-08-06 02:12:24 +02:00
</div>
<div class="card p-3">
<blockquote class="card-block card-blockquote">
2014-08-06 02:12:24 +02:00
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>
<small class="text-muted">
Someone famous in <cite title="Source Title">Source Title</cite>
</small>
</footer>
2014-08-06 02:12:24 +02:00
</blockquote>
</div>
<div class="card">
<img class="card-img-top img-fluid" data-src="holder.js/100px160/" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
2014-08-06 02:12:24 +02:00
</div>
<div class="card card-inverse card-primary p-3 text-center">
2014-08-06 02:12:24 +02:00
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat.</p>
<footer>
<small>
Someone famous in <cite title="Source Title">Source Title</cite>
</small>
</footer>
2014-08-06 02:12:24 +02:00
</blockquote>
</div>
<div class="card text-center">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
2014-08-06 02:12:24 +02:00
</div>
<div class="card">
<img class="card-img img-fluid" data-src="holder.js/100px260/" alt="Card image">
</div>
<div class="card p-3 text-right">
2014-08-06 02:12:24 +02:00
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>
<small class="text-muted">
Someone famous in <cite title="Source Title">Source Title</cite>
</small>
</footer>
2014-08-06 02:12:24 +02:00
</blockquote>
</div>
<div class="card">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
2014-08-06 02:12:24 +02:00
</div>
</div>
{% endexample %}
Card columns can also be extended and customized with some additional code. Shown below is an extension of the `.card-columns` class using the same CSS we use—CSS columns— to generate a set of responsive tiers for changing the number of columns.
{% highlight scss %}
.card-columns {
@include media-breakpoint-only(lg) {
column-count: 4;
}
@include media-breakpoint-only(xl) {
column-count: 5;
}
}
{% endhighlight %}