7.2.1 下拉菜单对齐方式
在默认情况下,下拉菜单自动沿着父元素的上、下边(下拉菜单沿下边、上拉菜单沿上边)和左侧对齐,并被设定为100%宽度。
为了改变下拉菜单的定位方式,Bootstrap
提供了如下样式。
样式 |
描述 |
.dropdown-menu-left |
左对齐 ,这是默认 的对齐方式。设置在菜单(<ul> 元素)上 |
.dropdown-menu-right |
右对齐 ,下拉菜单沿着容器右边对齐。设置在菜单(<ul> 元素)上 |
.open |
设置该样式的菜单默认是打开的,这个样式要设置在下拉菜单的容器(<div> )上。 |
下拉菜单可能会由于设置了overflow
属性的父元素而被部分遮挡或超出viewport
的显示范围,这些问题需要开发人员自行解决。
程序示例
下面代码定义了一个右对齐、自动打开的菜单。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| <!DOCTYPE html> <html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <title> 右对齐的下拉菜单 </title> <link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="../bootstrap/css/bootstrap-theme.min.css"> </head>
<body> <div class="container"> <div class="row"> <div class="col-sm-3"> <div class="dropdown open"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdown3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> 下拉菜单(带分隔条) <span class="caret"></span> </button> <ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdown3"> <li> <a href="#">新建</a> </li> <li> <a href="#">打开</a> </li> <li> <a href="#">保存</a> </li> <li role="separator" class="divider"></li> <li> <a href="#">退出</a> </li> </ul> </div> </div> <div class="col-sm-3"> <div class="dropdown open"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdown3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> 下拉菜单 <span class="caret"></span> </button> <ul class="dropdown-menu" aria-labelledby="dropdown3"> <li> <a href="#">新建</a> </li> <li> <a href="#">打开</a> </li> <li> <a href="#">保存</a> </li> <li> <a href="#">退出</a> </li> </ul> </div> </div> </div> <script type="text/javascript" src="../jquery-3.1.1.js"></script> <script type="text/javascript" src="../bootstrap/js/bootstrap.min.js"></script> </body>
</html>
|