下拉菜单是Bootstrap 4中重要的交互组件,用于:
Bootstrap 4 提供了简单易用的下拉菜单组件,使用 .dropdown 类创建下拉菜单容器。
<!-- 基本下拉菜单 -->
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
基本下拉菜单
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">动作</a>
<a class="dropdown-item" href="#">另一个动作</a>
<a class="dropdown-item" href="#">其他内容</a>
</div>
</div>
<!-- 主要下拉菜单 -->
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" id="dropdownMenuButton2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
主要下拉菜单
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton2">
<a class="dropdown-item" href="#">动作</a>
<a class="dropdown-item" href="#">另一个动作</a>
<a class="dropdown-item" href="#">其他内容</a>
</div>
</div>
Bootstrap 4 提供了多种下拉菜单变体,包括分割按钮、不同方向等。
<!-- 分割按钮下拉菜单 -->
<div class="btn-group">
<button type="button" class="btn btn-primary">主要操作</button>
<button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="sr-only">切换下拉菜单</span>
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">动作</a>
<a class="dropdown-item" href="#">另一个动作</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">分离的链接</a>
</div>
</div>
<!-- 右侧下拉菜单 -->
<div class="btn-group">
<button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
右侧下拉
</button>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="#">动作</a>
<a class="dropdown-item" href="#">另一个动作</a>
<a class="dropdown-item" href="#">其他内容</a>
</div>
</div>
下拉菜单可以包含多种类型的内容,包括标题、分割线、表单等。
<!-- 带标题和分割线的下拉菜单 -->
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu4" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
带内容的下拉菜单
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenu4">
<h6 class="dropdown-header">下拉菜单标题</h6>
<a class="dropdown-item" href="#">动作</a>
<a class="dropdown-item" href="#">另一个动作</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">分离的链接</a>
</div>
</div>
<!-- 带表单的下拉菜单 -->
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu5" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
带表单的下拉菜单
</button>
<div class="dropdown-menu p-4" style="width: 300px;">
<form>
<div class="form-group">
<label for="exampleDropdownFormEmail">邮箱地址</label>
<input type="email" class="form-control" id="exampleDropdownFormEmail" placeholder="email@example.com">
</div>
<div class="form-group">
<label for="exampleDropdownFormPassword">密码</label>
<input type="password" class="form-control" id="exampleDropdownFormPassword" placeholder="密码">
</div>
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="dropdownCheck">
<label class="form-check-label" for="dropdownCheck">记住我</label>
</div>
<button type="submit" class="btn btn-primary">登录</button>
</form>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">新用户? 注册</a>
<a class="dropdown-item" href="#">忘记密码?</a>
</div>
</div>
Bootstrap 4 提供了多种下拉菜单方向,包括向上、向左、向右等。
<!-- 向上展开的下拉菜单 -->
<div class="btn-group dropup">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
向上展开
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">动作</a>
<a class="dropdown-item" href="#">另一个动作</a>
<a class="dropdown-item" href="#">其他内容</a>
</div>
</div>
<!-- 向右展开的下拉菜单 -->
<div class="btn-group dropright">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
向右展开
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">动作</a>
<a class="dropdown-item" href="#">另一个动作</a>
<a class="dropdown-item" href="#">其他内容</a>
</div>
</div>
<!-- 向左展开的下拉菜单 -->
<div class="btn-group dropleft">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
向左展开
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">动作</a>
<a class="dropdown-item" href="#">另一个动作</a>
<a class="dropdown-item" href="#">其他内容</a>
</div>
</div>
通过自定义CSS,您可以创建独特的下拉菜单样式,以适应您的设计需求。
<!-- 自定义样式下拉菜单 -->
<style>
.custom-dropdown .dropdown-menu {
border: none;
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.custom-dropdown .dropdown-item {
transition: all 0.2s;
}
.custom-dropdown .dropdown-item:hover {
background-color: rgba(111, 66, 193, 0.1);
color: #6f42c1;
}
</style>
<div class="dropdown custom-dropdown">
<button class="btn btn-outline-primary dropdown-toggle" type="button" id="customDropdownMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
自定义样式
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#"><i class="fas fa-home mr-2"></i>首页</a>
<a class="dropdown-item" href="#"><i class="fas fa-user mr-2"></i>个人资料</a>
<a class="dropdown-item" href="#"><i class="fas fa-cog mr-2"></i>设置</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#"><i class="fas fa-sign-out-alt mr-2"></i>退出</a>
</div>
</div>
<!-- 导航栏中的下拉菜单 -->
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">导航栏</a>
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
下拉菜单
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">动作</a>
<a class="dropdown-item" href="#">另一个动作</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">其他内容</a>
</div>
</li>
</ul>
</nav>
Bootstrap 4 的下拉菜单组件提供了JavaScript API,可以通过编程方式控制下拉菜单。
<!-- HTML -->
<div class="btn-group">
<button id="jsDropdownButton" class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
JavaScript控制
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">动作</a>
<a class="dropdown-item" href="#">另一个动作</a>
<a class="dropdown-item" href="#">其他内容</a>
</div>
</div>
<div class="mt-2">
<button id="showDropdown" class="btn btn-primary mr-2">显示下拉菜单</button>
<button id="hideDropdown" class="btn btn-secondary mr-2">隐藏下拉菜单</button>
<button id="toggleDropdown" class="btn btn-info">切换下拉菜单</button>
</div>
<!-- JavaScript -->
<script>
// 显示下拉菜单
document.getElementById('showDropdown').addEventListener('click', function() {
$('#jsDropdownButton').dropdown('show');
});
// 隐藏下拉菜单
document.getElementById('hideDropdown').addEventListener('click', function() {
$('#jsDropdownButton').dropdown('hide');
});
// 切换下拉菜单
document.getElementById('toggleDropdown').addEventListener('click', function() {
$('#jsDropdownButton').dropdown('toggle');
});
</script>