4.5.4 按钮作为addon
输入框组上的addon支持复选框和单选框,是不是也支持普通的button以addon的形式出现呢?Bootstrap开发者当然也考虑到这一点了,但是由前面的章节我们知道,.btn按钮样式上定义了各种各样的样式(比如大小、颜色、内外边距等),其不像checkbox、radio、label等直接放到.input-group-addon样式里就行的,所以为了避免冲突,作者为.btn样式又单独设置了一个.input-group-btn样式(基础用法里提到过),用其替换.input-group-addon作为新的addon容器。示例用法如下:
- <div class="row">
- <div class="col-lg-6">
- <div class="input-group">
- <span class="input-group-btn"><button class="btn btn-default" type=
- "button">Go!</button></span>
- <input type="text" class="form-control">
- </div>
- </div>
- <div class="col-lg-6">
- <div class="input-group">
- <input type="text" class="form-control">
- <span class="input-group-btn"><button class="btn btn-default" type=
- "button">Go!</button></span>
- </div>
- </div>
- </div>
上述代码的运行效果如图4-26所示。
图4-26 按钮组作为addon的运行效果
就如基本用法里源码分析的一样,.input-group-btn样式共用了.input-group-addon样式的部分设置,然后又单独处理了各种内外边距。源码如下:
- // 源码3433行
- .input-group-btn {
- position: relative; /*相对定位*/
- font-size: 0;
- white-space: nowrap;
- }
- .input-group-btn > .btn {
- position: relative; /*所有.input-group-btn容器内的按钮都相对定位*/
- }
- .input-group-btn > .btn + .btn {
- margin-left: -1px; /*所有.input-group-btn容器内的按钮之间的左外边距都有-1像素,以便靠近*/
- }
- .input-group-btn > .btn:hover,
- .input-group-btn > .btn:focus,
- .input-group-btn > .btn:active {
- z-index: 2; /*高亮时,加大z-index*/
- }
- .input-group-btn:first-child > .btn,
- .input-group-btn:first-child > .btn-group {
- margin-right: -1px; /*第一个.input-group-btn容器内的按钮或按钮组,右外边距设置为
- -1,以便都可以靠近*/
- }
- .input-group-btn:last-child > .btn,
- .input-group-btn:last-child > .btn-group {
- margin-left: -1px; /*最后一个.input-group-btn容器内的按钮或按钮组,左外边距设置为-1,
- 以便都可以靠近*/
- }