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

411 lines
16 KiB
Markdown
Raw Normal View History

2014-08-06 02:12:24 +02:00
---
layout: page
title: Cards
---
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
2015-05-28 23:07:34 +02:00
Cards require a small amount of markup and classes to provide you with as much control as possible. These classes and markup are flexible though and can typically be remixed and extended with ease.
2014-08-06 02:12:24 +02:00
{% example html %}
<div class="card">
2015-05-28 23:07:34 +02:00
<img class="card-img-top" data-src="holder.js/100%x180/" 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>
<a href="#" class="btn btn-primary">Button</a>
</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
2015-05-28 23:07:34 +02:00
Cards support a wide variety of content, including images, text, list groups, links, and more. Mix and match multiple content types to create the card you need.
2015-04-23 10:33:19 +02:00
2015-05-28 23:07:34 +02:00
{% example html %}
<div class="card">
<img class="card-img-top" data-src="holder.js/100%x180/?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>
</div>
{% endexample %}
2015-05-28 04:00:11 +02:00
2015-04-23 10:33:19 +02:00
{% example html %}
2015-05-28 23:07:34 +02:00
<div class="card">
<img class="card-img-top" data-src="holder.js/100%x180/?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>
</div>
2015-05-28 04:00:11 +02:00
</div>
2015-05-28 23:07:34 +02:00
{% endexample %}
{% example html %}
<div class="card">
<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="card-link">Card link</a>
<a href="#" class="card-link">Another link</a>
</div>
2015-05-28 04:00:11 +02:00
</div>
2015-05-28 23:07:34 +02:00
{% endexample %}
{% example html %}
<div class="card">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<h6 class="card-subtitle text-muted">Support card subtitle</h6>
</div>
<img data-src="holder.js/100%x180/?text=Image" alt="Card image">
<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>
<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 %}
2015-05-28 23:07:34 +02:00
## Sizing
Cards are block-level by default, so they'll fill the available horizontal space. Constrain their widths via inline styles, our predefined grid classes, or with custom styles using our grid mixins.
2015-05-28 04:00:11 +02:00
Using the grid:
2015-04-23 10:33:19 +02:00
{% example html %}
<div class="row">
<div class="col-sm-6">
2015-05-28 23:07:34 +02:00
<div class="card card-block">
2015-04-23 10:33:19 +02:00
<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 class="col-sm-6">
2015-05-28 23:07:34 +02:00
<div class="card card-block">
2015-04-23 10:33:19 +02:00
<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>
{% endexample %}
2015-05-28 04:00:11 +02:00
Using custom widths:
{% example html %}
2015-05-28 23:07:34 +02:00
<div class="card card-block" style="width: 20rem;">
2015-05-28 04:00:11 +02:00
<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>
{% endexample %}
## Text alignment
2014-08-06 02:12:24 +02:00
2014-12-30 21:45:24 +01:00
You can quickly change the text alignment of any card—in its entirety or specific parts—with our [text align classes]().
2014-08-06 02:12:24 +02:00
{% example html %}
2015-05-28 23:07:34 +02:00
<div class="card card-block">
2014-08-06 02:12:24 +02:00
<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>
2015-05-28 23:07:34 +02:00
<div class="card card-block text-center">
2014-08-06 02:12:24 +02:00
<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>
2015-05-28 23:07:34 +02:00
<div class="card card-block text-right">
2014-08-06 02:12:24 +02:00
<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>
{% endexample %}
2015-05-28 04:00:11 +02:00
## 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>
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">
<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 %}
2015-05-28 04:00:11 +02:00
## Image caps
2014-08-06 02:12:24 +02:00
Similar to headers and footers, cards include top and bottom image caps.
{% example html %}
<div class="card">
2015-05-28 23:07:34 +02:00
<img class="card-img-top" data-src="holder.js/100%x180/" 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>
<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>
<img class="card-img-bottom" data-src="holder.js/100%x180/" alt="Card image cap">
2014-08-06 02:12:24 +02:00
</div>
{% endexample %}
2015-05-28 04:00:11 +02:00
## 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`.
{% example html %}
<div class="card card-inverse">
2015-05-29 10:58:52 +02:00
<img class="card-img" data-src="holder.js/100%x270/#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 %}
2015-05-28 04:00:11 +02:00
## Inverted text
2014-08-06 02:12:24 +02:00
Cards include a class for quickly toggling the text color. By default, cards use dark text and assume a light background. **Add `.card-inverse` for white text on a dark background.** You'll need to specify the `background-color` and `border-color` to go with it, or use the [contextual backgrounds](#context-variations).
{% 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">Button</a>
</div>
2014-08-06 02:12:24 +02:00
</div>
{% endexample %}
2015-05-28 04:00:11 +02: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`.
{% example html %}
<div class="card card-inverse card-primary 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 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 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 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-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 %}
2015-05-28 04:00:11 +02:00
## Groups
2014-08-06 02:12:24 +02:00
Set a `width` on the `.card-group`, content automatically sizes for equal columns via `display: table;` and `table-layout: fixed;`. And because we're using table styles, we also get equal height for free.
{% example html %}
<div class="card-group">
<div class="card">
2015-05-28 23:07:34 +02:00
<img class="card-img-top" data-src="holder.js/100%x180/" 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>
<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
<img class="card-img-top" data-src="holder.js/100%x180/" 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">
2015-05-28 23:07:34 +02:00
<img class="card-img-top" data-src="holder.js/100%x180/" 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>
</div>
2014-08-06 02:12:24 +02:00
</div>
</div>
{% endexample %}
2015-05-28 23:07:34 +02:00
## Decks
2014-08-06 02:12:24 +02:00
2015-05-28 23:07:34 +02:00
Get equal-width and equal-height cards by using two wrappers: `.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 %}
2015-05-28 23:07:34 +02:00
<div class="card-deck-wrapper">
<div class="card-deck">
2014-08-06 02:12:24 +02:00
<div class="card">
2015-05-28 23:07:34 +02:00
<img class="card-img-top" data-src="holder.js/100%x200/" 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>
</div>
2014-08-06 02:12:24 +02:00
</div>
<div class="card">
2015-05-28 23:07:34 +02:00
<img class="card-img-top" data-src="holder.js/100%x200/" 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">
2015-05-28 23:07:34 +02:00
<img class="card-img-top" data-src="holder.js/100%x200/" 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>
</div>
2014-08-06 02:12:24 +02:00
</div>
</div>
</div>
{% endexample %}
2015-05-28 04:00:11 +02:00
## Columns
2014-08-06 02:12:24 +02:00
Cards can be organized into columns by wrapping a group with `.card-columns`.
{% example html %}
<div class="card-columns">
<div class="card">
<img class="card-img-top" data-src="holder.js/260x160/" alt="Card image cap">
<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>
<div class="card">
<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 class="card">
<img class="card-img-top" data-src="holder.js/260x160/" alt="Card image cap">
<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>
<div class="card card-inverse card-primary text-center">
<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 class="card">
<img class="card-img" data-src="holder.js/260x260/" alt="Card image">
</div>
<div class="card text-center">
<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>
<div class="card text-right">
<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 class="card">
<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>
</div>
{% endexample %}