bootstrap按钮右对齐_Bootstrap下拉菜单样式

本文详细介绍了如何在Bootstrap中创建和使用下拉菜单,包括单一按钮和分离式按钮的下拉菜单,调整菜单尺寸、方向,实现非交互式菜单以及菜单偏移。同时,还提到了JavaScript的方法和事件来操控下拉菜单。
摘要由CSDN通过智能技术生成

ee74116ee3ff75dd7decd77ecbf73420.png

使用Bootstrap下拉插件用于显示切换你要展示的链接列表和更多内容的,或触发其它内容显示(覆盖)。

将下拉列表的切换(按钮或链接)和下拉菜单包含在.dropdown中,或者另外声明position: relative;元素;可以从<a><button>触发下拉菜单,以适应你的使用的需求。

单一按钮的下拉菜单

任何一个.btn块都可以定义变更为下拉菜单,下面是两个使用<button>元素做下拉菜单的示例。

<!-- 单一按钮的下拉菜单 -->
<div class="col-2">
	<div class="dropdown">
		<button class="btn btn-secondary dropdown-toggle" data-toggle="dropdown">button标签下拉</button>
		<div class="dropdown-menu">
			<a href="#" class="dropdown-item">北京</a>
			<a href="#" class="dropdown-item">上海</a>
			<a href="#" class="dropdown-item">广州</a>
		</div>
	</div>
</div>

<!-- 使用a标签 -->
<div class="col-2">
	<div class="dropdown">
		<a href="javascript:;" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">a标签下拉</a>
		<div class="dropdown-menu">
			<a href="#" class="dropdown-item">北京</a>
			<a href="#" class="dropdown-item">上海</a>
			<a href="#" class="dropdown-item">广州</a>
			<div class="dropdown-divider"></div>
			<a href="#" class="dropdown-item">深圳</a>
		</div>
	</div>
</div>

fa35adce2cb878e212f442cd30bc26e3.png

分离式按钮下拉菜单

同样,可用与单个按钮下拉菜单近似的标记创建分裂式下拉菜单,注意添加了.dropdown-toggle-split-插入此符号为下拉选项作适当的间隔(距)处理。

<!-- 分离式按钮下拉菜单 -->
<div class="col-3">
	<div class="btn-group dropdown">
		<button class="btn btn-success btn-lg">分离式按钮下拉菜单</button>
		<button class="btn btn-success btn-lg dropdown-toggle dropdown-toggle-split"
			data-toggle="dropdown"></button>
		<div class="dropdown-menu">
			<a href="#" class="dropdown-item">北京</a>
			<a href="#" class="dropdown-item">上海</a>
			<a href="#" class="dropdown-item">广州</a>
			<div class="dropdown-divider"></div>
			<a href="#" class="dropdown-item">深圳</a>
		</div>
	</div>
</div>

883b0cd1c46bbfd2522801701137ff20.png

下拉菜单尺寸

<div class="row mt-5">
	<!-- 下拉菜单尺寸 -->
	<div class="col-3 d-flex">
		<div class="dropdown">
			<button class="btn btn-danger btn-lg dropdown-toggle" data-toggle="dropdown">大按钮</button>
			<div class="dropdown-menu">
				<a href="#" class="dropdown-item">北京</a>
				<a href="#" class="dropdown-item">上海</a>
				<a href="#" class="dropdown-item">广州</a>
			</div>
		</div>
		<div class="dropdown">
			<button class="btn btn-danger dropdown-toggle" data-toggle="dropdown">正常按钮</button>
			<div class="dropdown-menu">
				<a href="#" class="dropdown-item">北京</a>
				<a href="#" class="dropdown-item">上海</a>
				<a href="#" class="dropdown-item">广州</a>
			</div>
		</div>
		<div class="dropdown">
			<button class="btn btn-danger btn-sm dropdown-toggle" data-toggle="dropdown">小按钮</button>
			<div class="dropdown-menu">
				<a href="#" class="dropdown-item">北京</a>
				<a href="#" class="dropdown-item">上海</a>
				<a href="#" class="dropdown-item">广州</a>
			</div>
		</div>
	</div>
</div>

cc400801200bf4358d421f050c9a8c5d.png

下拉菜单方向

<div class="row mt-5">
	<div class="col">
		<div class="dropup">
			<!-- 向上展开 -->
			<button class="btn btn-info dropdown-toggle" data-toggle="dropdown">向上展开</button>
			<div class="dropdown-menu">
				<a href="#" class="dropdown-item">北京</a>
				<a href="#" class="dropdown-item">上海</a>
				<a href="#" class="dropdown-item">广州</a>
			</div>
		</div>
	</div>
	<div class="col">
		<div class="dropright">
			<!-- 向右展开 -->
			<button class="btn btn-info dropdown-toggle" data-toggle="dropdown">向右展开</button>
			<div class="dropdown-menu">
				<a href="#" class="dropdown-item">北京</a>
				<a href="#" class="dropdown-item">上海</a>
				<a href="#" class="dropdown-item">广州</a>
			</div>
		</div>
	</div>
	<div class="col">
		<div class="dropdown">
			<!-- 向下展开 -->
			<button class="btn btn-info dropdown-toggle" data-toggle="dropdown">向下展开</button>
			<div class="dropdown-menu">
				<a href="#" class="dropdown-item">北京</a>
				<a href="#" class="dropdown-item">上海</a>
				<a href="#" class="dropdown-item">广州</a>
			</div>
		</div>
	</div>
	<div class="col">
		<div class="dropleft">
			<!-- 向左展开 -->
			<button class="btn btn-info dropdown-toggle" data-toggle="dropdown">向左展开</button>
			<div class="dropdown-menu">
				<a href="#" class="dropdown-item">北京</a>
				<a href="#" class="dropdown-item">上海</a>
				<a href="#" class="dropdown-item">广州</a>
			</div>
		</div>
	</div>
</div>

2730357ac06103ec4b344b5df9af2edb.png

非交互式的下拉菜单

有效菜单:加上.active让下拉列表中的项样式为active。

不可用菜单:加上.disabled让下拉列表中的项样式为不可用。

<!-- 非交互式的下拉菜单 -->
<div class="row mt-5">
	<div class="col">
		<div class="dropdown">
			<div class="dropdown-menu show">
				<span class="dropdown-item-text">非点击的项</span>
				<h4 class="dropdown-header">下拉菜单的标题</h4>
				<a href="#" class="dropdown-item">北京</a>
				<a href="#" class="dropdown-item active">上海</a> <!-- 当前的选项 -->
				<a href="#" class="dropdown-item disabled">广州</a> <!-- 禁用的选项 -->
				<div class="dropdown-divider"></div>
				<button class="dropdown-item">深圳</button>
			</div>
		</div>
	</div>
</div>

0c027b6909105c4da5d33d3b605d5d3a.png

菜单偏移

使用data-offsetdata-reference更改下拉菜单的位置。

<!-- 偏移属性 -->
<div class="row mt-5" style="margin-top: 260px!important;">
	<div class="col">
		<div class="dropdown">
			<button class="btn btn-info dropdown-toggle" data-toggle="dropdown" data-offset="10,20">偏移</button>
			<div class="dropdown-menu">
				<!-- 右对齐 -->
				<a href="#" class="dropdown-item">北京</a>
				<a href="#" class="dropdown-item">上海</a>
				<a href="#" class="dropdown-item">广州</a>
				<div class="dropdown-divider"></div>
				<button class="dropdown-item">深圳</button>
			</div>
		</div>
	</div>
	<div class="col">
		<div class="dropdown">
			<button class="btn btn-info dropdown-toggle" data-toggle="dropdown">偏移</button>
			<div class="dropdown-menu" data-reference="parent">
				<!-- 右对齐 -->
				<a href="#" class="dropdown-item">北京</a>
				<a href="#" class="dropdown-item">上海</a>
				<a href="#" class="dropdown-item">广州</a>
				<div class="dropdown-divider"></div>
				<button class="dropdown-item">深圳</button>
			</div>
		</div>
	</div>
</div>

3edf69e445f51d09c530f0ad557ddcb2.png

js的方法与事件 $('.dropdown-toggle').dropdown()

事件:

事件类型描述
show.bs.dropdown当调用show显示方法时,此事件会立即触发。
shown.bs.dropdown当下拉菜单对用户可见时,会触发此事件(将等待CSS转换完成)​​。
hide.bs.dropdown当调用隐藏实例方法时,会立即触发此事件。
hidden.bs.dropdown当下拉菜单从用户隐藏完毕时,会触发此事件(将等待CSS转换完成)​​。
<!DOCTYPE html>
<html>

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
	<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
		integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
	<title>Bootstrap下拉菜单样式</title>
</head>

<body>
	<div class="container">
		<!-- js的方法与事件 -->
		<div class="row mt-5">
			<div class="col">
				<div class="dropdown">
					<button class="btn btn-danger dropdown-toggle" id="myBtn">方法</button>
					<div class="dropdown-menu" id="myDropdown" data-reference="parent">
						<!-- 右对齐 -->
						<a href="#" class="dropdown-item">北京</a>
						<a href="#" class="dropdown-item">上海</a>
						<a href="#" class="dropdown-item">广州</a>
						<div class="dropdown-divider"></div>
						<button class="dropdown-item">深圳</button>
					</div>
				</div>
			</div>
			<div class="col">
				<div class="dropdown" id="myDropdown1">	<!-- 注意,事件要放在这里!!! -->
					<button class="btn btn-info dropdown-toggle" data-toggle="dropdown">事件</button>
					<div class="dropdown-menu" data-reference="parent">
						<a href="#" class="dropdown-item">北京</a>
						<a href="#" class="dropdown-item">上海</a>
						<a href="#" class="dropdown-item">广州</a>
						<div class="dropdown-divider"></div>
						<button class="dropdown-item">深圳</button>
					</div>
				</div>
			</div>
		</div>

	</div>

	<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
		integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
		crossorigin="anonymous"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
		integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
		crossorigin="anonymous"></script>
	<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
		integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
		crossorigin="anonymous"></script>

	<script>
		//方法
		$('#myBtn').click(function () {
			//$('#myDropdown').dropdown('show');
			//$('#myDropdown').dropdown('hide');

			//$('#myDropdown').dropdown('toggle');

			//解决toggle的问题
			$('#myDropdown').toggle(function () {
				$('#myDropdown').dropdown('show');
			}, function () {
				$('#myDropdown').dropdown('hide');
			});
		});

		//事件
		$('#myDropdown1').on('show.bs.dropdown', function () {
			console.log('调用了show方法');
		});
		$('#myDropdown1').on('shown.bs.dropdown', function () {
			console.log('下拉列表完全显示了');
		});

		$('#myDropdown1').on('hide.bs.dropdown', function () {
			console.log('调用了hide方法');
		});
		$('#myDropdown1').on('hidden.bs.dropdown', function () {
			console.log('下拉列表完全隐藏了');
		});
	</script>
</body>

</html>

eda791f86caeb272b9991fd0d9f873ff.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值