一、卡片(card)
卡片是一个灵活的、可扩展的内容窗口,同时可以做出多种展示效果变体。
卡片没有特定的宽度width定义,除非另有定义声明,否则它们的真实宽度将是100%,您可以根据需要使用自定义CSS,引入栅格系统、定义栅格系统Sass mixins或其它程式进行更改。
1.基础卡片
<div class="row">
<div class="col-lg-4">
<div class="card">
<div class="card-body">
<h3 class="card-title">这是卡片的标题</h3>
<h4 class="card-subtitle mb-3">这是卡片的幅标题</h4>
<p class="card-text">这是卡片的文本内容,需要添加一个card-text的class</p>
<a href="#" class="card-link">链接1</a>
<a href="#" class="card-link">链接2</a>
</div>
</div>
</div>
<!-- 图片 -->
<div class="col-lg-4">
<div class="card">
<img class="card-img-top" src="images/img_02.jpg" alt="">
<div class="card-body">
<p class="card-text">这是图片的说明会很长很长这是图片的说明会很长很长这是图片的说明会很长很长这是图片的说明会很长很长这是图片的说明会很长很长这是图片的说明会很长很长
</p>
</div>
</div>
</div>
<!-- 列表组、页眉、页脚 -->
<div class="col-lg-4">
<div class="card">
<div class="card-header">这是卡片的头部,也叫页眉</div>
<ul class="list-group list-group-flush">
<li class="list-group-item">这是列表的文字</li>
<li class="list-group-item">这是列表的文字</li>
<li class="list-group-item">这是列表的文字</li>
</ul>
<div class="card-footer">这是卡片的底部,也叫页脚</div>
</div>
</div>
</div>
2.内容类型
头部:卡片的头部.card-header,也叫页眉
主体:如要在一个.card中装置带边框的内容时,使用.card-body样式,建立起卡片的内容主体
底部:卡片的底部.card-footer,也叫页脚
- 标题内容
- 通过.card-title和
<h*>
组合,可以添加卡片标题。- 将.card-link 与
<a>
结合使用,可以方便添加平行的链接。- 通过 .card-subtitle 和
<h*>
结合,可以添加副标题- .card-title 和 .card-subtitle 组合放在 .card-body 中, 则可对齐主、副标题
<div class="card" style="width: 18rem;">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
<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>
</div>
- 图片文字
.card-img-top 定义一张图片在卡片的顶部
.card-text定义文字在卡片中
<div class="card" style="width: 18rem;">
<img class="card-img-top" src="..." alt="Card image cap">
<div class="card-body">
<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>
</div>
- 列表组
建立一个包含内容的列表组卡片
<div class="card" style="width: 18rem;">
<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>
- 组合使用
<div class="row mt-5">
<div class="col-lg-4">
<div class="card">
<div class="card-header">陈数</div>
<img class="card-img-top" src="images/img_03.jpg" alt="">
<div class="card-body">
<h5 class="card-title">这是卡片的标题</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
<a href="#" class="card-link btn btn-primary">链接1</a>
<a href="#" class="card-link btn btn-info">链接2</a>
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item">这是列表的文字</li>
<li class="list-group-item">这是列表的文字</li>
<li class="list-group-item">这是列表的文字</li>
</ul>
<div class="card-footer">页脚</div>
</div>
</div>
</div>
<div class="row mt-5">
<div class="col">
<div class="card text-center">
<div class="card-header">Featured</div>
<div class="card-body">
<h5 class="card-title">Special title treatment</h5>
<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 class="card-footer text-muted">2 days ago</div>
</div>
</div>
</div>
2.宽度设置
<div class="row mt-5">
<div class="card" style="width: 20rem;">
<div class="card-body">
<h5 class="card-title">这是卡片的标题</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
<a href="#" class="card-link btn btn-primary">链接1</a>
</div>
</div>
</div>
3.文本对齐
<div class="row mt-5">
<div class="col-lg-4">
<div class="card text-left">
<div class="card-body">
<h5 class="card-title">左对齐</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
<a href="#" class="card-link btn btn-primary">链接1</a>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="card text-center">
<div class="card-body">
<h5 class="card-title">居中对齐</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
<a href="#" class="card-link btn btn-primary">链接1</a>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="card text-right">
<div class="card-body">
<h5 class="card-title">右对齐</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
<a href="#" class="card-link btn btn-primary">链接1</a>
</div>
</div>
</div>
</div>
4.导航
- 表格(nav-tabs)
<div class="card text-center">
<div class="card-header">
<ul class="nav nav-tabs card-header-tabs">
<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-body">
<h5 class="card-title">Special title treatment</h5>
<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>
- 填满(nav-pills)
<div class="card text-center">
<div class="card-header">
<ul class="nav nav-pills card-header-pills">
<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-body">
<h5 class="card-title">Special title treatment</h5>
<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>
5. 图像
选择在卡片的任何一端附加.cad-img-*,用卡片内容覆盖图像(如同背景),或者只是将图像置入到卡片当中
<div class="card mb-3">
<img class="card-img-top" src="..." alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<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>
<div class="card">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<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" src="..." alt="Card image cap">
</div>
6.文本放在图片身上
请注意,内容不应大于图像的高度。 如果内容大于图像,则内容将显示在图像外部.
<div class="card bg-dark text-white">
<img class="card-img" src="..." alt="Card image">
<div class="card-img-overlay">
<h5 class="card-title">Card title</h5>
<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">Last updated 3 mins ago</p>
</div>
</div>
7.水平排列
在下面的示例中,我们使用.no-gutters删除网格排水沟,并使用.col-md- * 类使卡在md 断点处水平。
<div class="card mb-3" style="max-width: 540px;">
<div class="row no-gutters">
<div class="col-md-4">
<img src="..." class="card-img" alt="...">
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<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>
</div>
</div>
8.卡片样式
- 颜色
<div class="row mt-5">
<div class="col-3">
<div class="card text-white bg-primary">
<div class="card-header">卡片的头部</div>
<div class="card-body">
<h5 class="card-title">这是卡片的标题</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
</div>
</div>
</div>
......
</div>
- 边框
使用 边框通用样式 来改变卡片的border-color 、 .text-{color} ,或者在父层的 .card 上显示内容。
<div class="row mt-5">
<div class="col-3">
<div class="card border-primary">
<div class="card-header">卡片的头部</div>
<div class="card-body text-primary">
<h5 class="card-title">这是卡片的标题</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
</div>
</div>
</div>
</div>
- 页眉、页脚的边框
更改卡上的页眉和页脚所需的边框,也能使用.bg-transparent删除其background-color背景颜色。
<div class="row mt-5">
<div class="col-3">
<div class="card border-success">
<div class="card-header bg-transparent border-success">卡片的头部</div>
<div class="card-body text-primary">
<h5 class="card-title">这是卡片的标题</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
</div>
<div class="card-footer bg-transparent border-success">卡片的底部</div>
</div>
</div>
</div>
9.卡片组
将多个卡片结为一个群组,使用他们具有相同的宽度和高度列。卡片组使用display: flex;来实现统一的布局。
- 连续
<div class="row mt-5 card-group">
<div class="card">
<img class="card-img-top" src="images/img_03.jpg" alt="">
<div class="card-body">
<h5 class="card-title">这是卡片的标题</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
<p class="card-text"><small class="text-muted">2 days ago</small></p>
</div>
</div>
......
</div>
- 不连续
<div class="row mt-5 card-deck">
<div class="card">
<img class="card-img-top" src="images/img_03.jpg" alt="">
<div class="card-body">
<h5 class="card-title">这是卡片的标题</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
<p class="card-text"><small class="text-muted">2 days ago</small></p>
</div>
</div>
......
</div>
- 瀑布流
將卡片包在.card-columns 中,可以將做出象 Masonry网站的瀑布式排列卡片效果,卡片是使用column属性,而不是基于 flexbox弹性布局,从而实现更方便实用的浮动对齐,顺序是从上到下、从左到右。
为了防止卡片排列突出栏目,我们必须为它们设置为 display: inline-block (当 column-break-inside: avoid 这个解决方案还没有生效时。
<div class="row mt-5">
<div class="card-columns">
<div class="card">
<img class="card-img-top" src="images/img_03.jpg" alt="">
<div class="card-body">
<h5 class="card-title">这是卡片的标题1</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
<p class="card-text"><small class="text-muted">2 days ago</small></p>
</div>
</div>
<div class="card">
<img class="card-img-top" src="images/img_04.jpg" alt="">
<div class="card-body">
<h5 class="card-title">这是卡片的标题2</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
<p class="card-text"><small class="text-muted">2 days ago</small></p>
</div>
</div>
<div class="card">
<img class="card-img-top" src="images/img_04.jpg" alt="">
<div class="card-body">
<h5 class="card-title">这是卡片的标题3</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
<p class="card-text"><small class="text-muted">2 days ago</small></p>
</div>
</div>
<div class="card">
<img class="card-img-top" src="images/img_04.jpg" alt="">
<div class="card-body">
<h5 class="card-title">这是卡片的标题4</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class
</p>
<p class="card-text"><small class="text-muted">2 days ago</small></p>
</div>
</div>
<div class="card">
<img class="card-img-top" src="images/img_03.jpg" alt="">
<div class="card-body">
<h5 class="card-title">这是卡片的标题5</h5>
<p class="card-text">
这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一个card-text的class。这是卡片的文本内容,需要添加一,需要添加一个card-text的class
</p>
<p class="card-text"><small class="text-muted">2 days ago</small></p>
</div>
</div>
</div>
</div>