简介
通过按钮组容器把一组按钮放在同一行里。通过与按钮插件联合使用,可以设置为单选框或多选框的样式和行为。
按钮组中的工具提示和弹出框需要特别的设置
当为 .btn-group 中的元素应用工具提示或弹出框时,必须指定container: 'body' 选项,这样可以避免不必要的副作用(例如工具提示或弹出框触发时,会让页面元素变宽和/或失去圆角)。
确保设置正确的 role 属性并提供一个 label 标签
为了向使用辅助技术 - 如屏幕阅读器 - 的用户正确传达一正确的按钮分组,需要提供一个合适的 role 属性。对于按钮组合,应该是 role="group",对于toolbar(工具栏)应该是role="toolbar"。 一个例外是按钮组合只包含一个单一的控制元素或一个下拉菜单(比如实际情况,<button> 元素组成的两端对齐排列的按钮组 )或下拉菜单。 此外,按钮组和工具栏应给定一个明确的label标签,尽管设置了正确的 role 属性,但是大多数辅助技术将不会正确的识读他们。在这里提供的实例中,我们使用 aria-label,但是, aria-labelledby 也可以使用。
基本的按钮组
下面的实例演示了上面表格中讨论到的 class .btn-group 的使用:
- <div class="btn-group" role="group" aria-label="...">
- <button type="button" class="btn btn-default">Left</button>
- <button type="button" class="btn btn-default">Middle</button>
- <button type="button" class="btn btn-default">Right</button>
- </div>
完整代码:
<!DOCTYPE HTML>
<html><head><link rel="stylesheet" href="/stylesheets/bootstrap.min.css"> <script src="/scripts/jquery.min.js"></script><script src="/scripts/bootstrap.min.js"></script> </head><body> <div class="btn-group"><button type="button" class="btn btn-default">按钮 1</button><button type="button" class="btn btn-default">按钮 2</button><button type="button" class="btn btn-default">按钮 3</button></div> </body></html>按钮工具栏
把一组 <div class="btn-group"> 组合进一个 <div class="btn-toolbar"> 中就可以做成更复杂的组件。
- <div class="btn-toolbar" role="toolbar" aria-label="...">
- <div class="btn-group" role="group" aria-label="...">...</div>
- <div class="btn-group" role="group" aria-label="...">...</div>
- <div class="btn-group" role="group" aria-label="...">...</div>
- </div>
尺寸
- <div class="btn-group btn-group-lg" role="group" aria-label="...">...</div>
- <div class="btn-group" role="group" aria-label="...">...</div>
- <div class="btn-group btn-group-sm" role="group" aria-label="...">...</div>
- <div class="btn-group btn-group-xs" role="group" aria-label="...">...</div>
完整代码:
<!DOCTYPE HTML>
<html><head><link rel="stylesheet" href="/stylesheets/bootstrap.min.css"> <script src="/scripts/jquery.min.js"></script><script src="/scripts/bootstrap.min.js"></script> </head><body> <div class="btn-group btn-group-lg" style="margin-top:10px;"><button type="button" class="btn btn-default">Button 1</button><button type="button" class="btn btn-default">Button 2</button><button type="button" class="btn btn-default">Button 3</button></div><br><div class="btn-group btn-group-sm" style="margin-top:10px;"><button type="button" class="btn btn-default">Button 4</button><button type="button" class="btn btn-default">Button 5</button><button type="button" class="btn btn-default">Button 6</button></div><br><div class="btn-group btn-group-xs" style="margin-top:10px;"><button type="button" class="btn btn-default">Button 7</button><button type="button" class="btn btn-default">Button 8</button><button type="button" class="btn btn-default">Button 9</button></div> </body></html>
嵌套
想要把下拉菜单混合到一系列按钮中,只须把 .btn-group 放入另一个 .btn-group 中。
- <div class="btn-group" role="group" aria-label="...">
- <button type="button" class="btn btn-default">1</button>
- <button type="button" class="btn btn-default">2</button>
- <div class="btn-group" role="group">
- <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
- Dropdown
- <span class="caret"></span>
- </button>
- <ul class="dropdown-menu" role="menu">
- <li><a href="#">Dropdown link</a></li>
- <li><a href="#">Dropdown link</a></li>
- </ul>
- </div>
- </div>
完整代码:
<!DOCTYPE HTML>
<html><head><link rel="stylesheet" href="/stylesheets/bootstrap.min.css"> <script src="/scripts/jquery.min.js"></script><script src="/scripts/bootstrap.min.js"></script> </head><body> <div class="btn-group"><button type="button" class="btn btn-default">按钮 1</button><button type="button" class="btn btn-default">按钮 2</button><div class="btn-group"><button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">下列<span class="caret"></span></button><ul class="dropdown-menu"><li><a href="javascript:void(0)">下拉链接 1</a></li><li><a href="javascript:void(0)">下拉链接 2</a></li></ul></div></div> </body></html>垂直排列
让一组按钮垂直堆叠排列显示而不是水平排列。分列式按钮下拉菜单不支持这种方式。
- <div class="btn-group-vertical">
- <button type="button" class="btn btn-default">按钮 1</button>
- <button type="button" class="btn btn-default">按钮 2</button>
- <div class="btn-group-vertical">
- <button type="button" class="btn btn-default dropdown-toggle"
- data-toggle="dropdown">
- 下拉
- <span class="caret"></span>
- </button>
- <ul class="dropdown-menu">
- <li><a href="#">下拉链接 1</a></li>
- <li><a href="#">下拉链接 2</a></li>
- </ul>
- </div>
- </div>
完整代码:
<!DOCTYPE HTML>
<html><head><link rel="stylesheet" href="/stylesheets/bootstrap.min.css"> <script src="/scripts/jquery.min.js"></script><script src="/scripts/bootstrap.min.js"></script> </head><body> <div class="btn-group-vertical"><button type="button" class="btn btn-default">按钮 1</button><button type="button" class="btn btn-default">按钮 2</button><div class="btn-group-vertical"><button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">下拉<span class="caret"></span></button><ul class="dropdown-menu"><li><a href="javascript:void(0)">下拉链接 1</a></li><li><a href="javascript:void(0)">下拉链接 2</a></li></ul></div></div> </body></html>
两端对齐排列的按钮组
让一组按钮拉长为相同的尺寸,填满父元素的宽度。对于按钮组中的按钮式下拉菜单也同样适用。
关于边框的处理
由于对两端对齐的按钮组使用了特定的 HTML 和 CSS (即display: table-cell),两个按钮之间的边框叠加在了一起。在普通的按钮组中,margin-left: -1px 用于将边框重叠,而没有删除任何一个按钮的边框。然而,margin 属性不支持 display: table-cell。因此,根据你对 Bootstrap 的定制,你可以删除或重新为按钮的边框设置颜色。
IE8和边框
Internet Explorer 8 不支持在两端对齐的按钮组中绘制边框,无论是 <a> 或<button> 元素。为了照顾 IE8,把每个按钮放入另一个 .btn-group 中即可。
关于 <a> 元素
只须将一系列 .btn 元素包裹到 .btn-group.btn-group-justified 中即可。
- <div class="btn-group btn-group-justified" role="group" aria-label="Justified button group">
- <a href="#" class="btn btn-default" role="button">Left</a>
- <a href="#" class="btn btn-default" role="button">Middle</a>
- <a href="#" class="btn btn-default" role="button">Right</a>
- </div>
完整代码:
<!DOCTYPE HTML>
<html><head><link rel="stylesheet" href="/stylesheets/bootstrap.min.css"> <script src="/scripts/jquery.min.js"></script><script src="/scripts/bootstrap.min.js"></script> </head><body> <div class="btn-group btn-group-justified" role="group" aria-label="Justified button group"><a href="#" class="btn btn-default" role="button">Left</a><a href="#" class="btn btn-default" role="button">Middle</a><a href="#" class="btn btn-default" role="button">Right</a></div> </body></html>