📅  最后修改于: 2023-12-03 15:39:30.673000             🧑  作者: Mango
有时候,我们需要在网页上展示一些信息、功能等,但是由于空间受限,不可能把所有信息都一次性展示出来。这时候,垂直选项卡就可以发挥作用了。垂直选项卡可以让我们在有限的空间内展示更多的信息,用户也可以通过点击标签页来快速切换内容。本文将介绍如何使用 HTML 和 Bootstrap 4 创建一个响应式的垂直选项卡。
在开始之前,我们需要准备一些工具和资源:
在 HTML 文件的 head 部分,我们需要引入 Bootstrap 和 jQuery:
<head>
<title>垂直选项卡</title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
/>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
></script>
</head>
在 body 部分,我们需要创建一个 <div>
标签,并添加 Bootstrap 的 container
类和 row
类。
<body>
<div class="container">
<div class="row justify-content-center">
</div>
</div>
</body>
之后,我们需要在 <div>
标签中添加 4 个卡片,每个卡片对应一个选项卡。
<body>
<div class="container">
<div class="row justify-content-center">
<div class="card col-md-4">
<img
src="https://via.placeholder.com/400x250"
class="card-img-top"
alt="卡片 1"
/>
<div class="card-body">
<h5 class="card-title">卡片 1</h5>
<p class="card-text">
这是卡片 1 的内容。Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Morbi tempus sollicitudin dui, quis vestibulum
massa porttitor cursus. Sed a libero non sapien vehicula feugiat
eget non nibh. Duis tincidunt ullamcorper mi, a rhoncus justo
vulputate at.
</p>
<a href="#" class="btn btn-primary">了解更多</a>
</div>
</div>
<div class="card col-md-4">
<img
src="https://via.placeholder.com/400x250"
class="card-img-top"
alt="卡片 2"
/>
<div class="card-body">
<h5 class="card-title">卡片 2</h5>
<p class="card-text">
这是卡片 2 的内容。Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Morbi tempus sollicitudin dui, quis vestibulum
massa porttitor cursus. Sed a libero non sapien vehicula feugiat
eget non nibh. Duis tincidunt ullamcorper mi, a rhoncus justo
vulputate at.
</p>
<a href="#" class="btn btn-primary">了解更多</a>
</div>
</div>
<div class="card col-md-4">
<img
src="https://via.placeholder.com/400x250"
class="card-img-top"
alt="卡片 3"
/>
<div class="card-body">
<h5 class="card-title">卡片 3</h5>
<p class="card-text">
这是卡片 3 的内容。Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Morbi tempus sollicitudin dui, quis vestibulum
massa porttitor cursus. Sed a libero non sapien vehicula feugiat
eget non nibh. Duis tincidunt ullamcorper mi, a rhoncus justo
vulputate at.
</p>
<a href="#" class="btn btn-primary">了解更多</a>
</div>
</div>
<div class="card col-md-4">
<img
src="https://via.placeholder.com/400x250"
class="card-img-top"
alt="卡片 4"
/>
<div class="card-body">
<h5 class="card-title">卡片 4</h5>
<p class="card-text">
这是卡片 4 的内容。Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Morbi tempus sollicitudin dui, quis vestibulum
massa porttitor cursus. Sed a libero non sapien vehicula feugiat
eget non nibh. Duis tincidunt ullamcorper mi, a rhoncus justo
vulputate at.
</p>
<a href="#" class="btn btn-primary">了解更多</a>
</div>
</div>
</div>
</div>
</body>
现在,我们已经添加了 4 个卡片,但它们仍然被依次排列着。我们需要添加选项卡,在用户点击标签页时,显示相应的卡片内容。
我们可以使用 Bootstrap 的 nav
和 nav-tabs
类来创建选项卡,使用 nav-item
和 nav-link
类来设置标签页。
<body>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-3">
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item">
<a
class="nav-link active"
id="home-tab"
data-toggle="tab"
href="#home"
role="tab"
aria-controls="home"
aria-selected="true"
>卡片 1</a
>
</li>
<li class="nav-item">
<a
class="nav-link"
id="profile-tab"
data-toggle="tab"
href="#profile"
role="tab"
aria-controls="profile"
aria-selected="false"
>卡片 2</a
>
</li>
<li class="nav-item">
<a
class="nav-link"
id="contact-tab"
data-toggle="tab"
href="#contact"
role="tab"
aria-controls="contact"
aria-selected="false"
>卡片 3</a
>
</li>
<li class="nav-item">
<a
class="nav-link"
id="about-tab"
data-toggle="tab"
href="#about"
role="tab"
aria-controls="about"
aria-selected="false"
>卡片 4</a
>
</li>
</ul>
</div>
<div class="col-md-9">
<div class="tab-content" id="myTabContent">
<div
class="tab-pane fade show active"
id="home"
role="tabpanel"
aria-labelledby="home-tab"
>
<div class="card col-md-12">
<img
src="https://via.placeholder.com/400x250"
class="card-img-top"
alt="卡片 1"
/>
<div class="card-body">
<h5 class="card-title">卡片 1</h5>
<p class="card-text">
这是卡片 1 的内容。Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Morbi tempus sollicitudin dui,
quis vestibulum massa porttitor cursus. Sed a libero non
sapien vehicula feugiat eget non nibh. Duis tincidunt
ullamcorper mi, a rhoncus justo vulputate at.
</p>
<a href="#" class="btn btn-primary">了解更多</a>
</div>
</div>
</div>
<div
class="tab-pane fade"
id="profile"
role="tabpanel"
aria-labelledby="profile-tab"
>
<div class="card col-md-12">
<img
src="https://via.placeholder.com/400x250"
class="card-img-top"
alt="卡片 2"
/>
<div class="card-body">
<h5 class="card-title">卡片 2</h5>
<p class="card-text">
这是卡片 2 的内容。Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Morbi tempus sollicitudin dui,
quis vestibulum massa porttitor cursus. Sed a libero non
sapien vehicula feugiat eget non nibh. Duis tincidunt
ullamcorper mi, a rhoncus justo vulputate at.
</p>
<a href="#" class="btn btn-primary">了解更多</a>
</div>
</div>
</div>
<div
class="tab-pane fade"
id="contact"
role="tabpanel"
aria-labelledby="contact-tab"
>
<div class="card col-md-12">
<img
src="https://via.placeholder.com/400x250"
class="card-img-top"
alt="卡片 3"
/>
<div class="card-body">
<h5 class="card-title">卡片 3</h5>
<p class="card-text">
这是卡片 3 的内容。Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Morbi tempus sollicitudin dui,
quis vestibulum massa porttitor cursus. Sed a libero non
sapien vehicula feugiat eget non nibh. Duis tincidunt
ullamcorper mi, a rhoncus justo vulputate at.
</p>
<a href="#" class="btn btn-primary">了解更多</a>
</div>
</div>
</div>
<div
class="tab-pane fade"
id="about"
role="tabpanel"
aria-labelledby="about-tab"
>
<div class="card col-md-12">
<img
src="https://via.placeholder.com/400x250"
class="card-img-top"
alt="卡片 4"
/>
<div class="card-body">
<h5 class="card-title">卡片 4</h5>
<p class="card-text">
这是卡片 4 的内容。Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Morbi tempus sollicitudin dui,
quis vestibulum massa porttitor cursus. Sed a libero non
sapien vehicula feugiat eget non nibh. Duis tincidunt
ullamcorper mi, a rhoncus justo vulputate at.
</p>
<a href="#" class="btn btn-primary">了解更多</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
现在,我们可以预览网页,并测试选项卡的功能了。当用户点击不同的标签页时,不同的卡片内容将被显示出来。
在本文中,我们介绍了如何使用 HTML 和 Bootstrap 4 创建一个响应式的垂直选项卡。通过这个简单的示例,你可以了解如何使用 Bootstrap 的 nav
和 nav-tabs
类,以及如何将多个卡片组合在一起,形成一个选项卡界面。如果你对 Bootstrap 还不熟悉,可以参考官方文档来了解更多的 API 和用法。