我正在使用Bootstrap,我想将整个btn-group
设置为其父元素的宽度为100%。我也喜欢内部按钮采用相同的宽度。事实上,我也无法实现。
我在这里制作了一个JSFiddle:http://jsfiddle.net/BcQZR/12/
这是HTML:
<div class="span8 background">
<div class="btn-group btn-block" id="colours">
<span class="btn"><input type='checkbox' name='size' value='red'/>red</span>
<span class="btn"><input type='checkbox' name='size' value='orange'/>orange</span>
<span class="btn"><input type='checkbox' name='size' value='yellow'/>yellow</span>
</div> <!-- /btn-group -->
</div>
这是我现在的CSS,它不起作用:
#colours {
width: 100%;
}
答案 0 :(得分:153)
Bootstrap有.btn-group-justified
css类。
它的结构如何基于您使用的标签类型。
<div class="btn-group btn-group-justified" role="group" aria-label="...">
...
</div>
<div class="btn-group btn-group-justified" role="group" aria-label="...">
<div class="btn-group" role="group">
<button type="button" class="btn btn-default">Left</button>
</div>
<div class="btn-group" role="group">
<button type="button" class="btn btn-default">Middle</button>
</div>
<div class="btn-group" role="group">
<button type="button" class="btn btn-default">Right</button>
</div>
</div>
答案 1 :(得分:41)
.btn-group-justified
类不需要额外的css。
你必须将它添加到父元素,然后将每个btn元素包装在一个带有.btn-group的div中,如下所示
<div class="form-group">
<div class="btn-group btn-group-justified">
<div class="btn-group">
<button type="submit" id="like" class="btn btn-lg btn-success ">Like</button>
</div>
<div class="btn-group">
<button type="submit" id="nope" class="btn btn-lg btn-danger ">Nope</button>
</div>
</div>
</div>
答案 2 :(得分:19)
BOOTSTRAP 2 (source)
问题是按钮上没有设置宽度。试试这个:
.btn {width:20%;}
修改强>
默认情况下,按钮采用文本长度的自动宽度加上一些填充,所以我猜你的例子可能更像是5个按钮的14.5%(以补偿填充)。
注意:
如果您不想尝试补偿填充,可以使用box-sizing:border-box;
答案 3 :(得分:10)
我不喜欢.btn上设置宽度的解决方案,因为它假设.btn-group中的项目总数相同。这是一个错误的假设,会导致特定于演示文稿的特定CSS。
更好的解决方案是更改.btn-block与.btn-block和子.btn(s)的显示方式。我相信这就是你要找的东西:
.btn-group.btn-block {
display: table;
}
.btn-group.btn-block > .btn {
display: table-cell;
}
这是一个小提琴:http://jsfiddle.net/DEwX8/123/
如果您希望使用等宽按钮(在合理范围内)并且只支持支持flexbox的浏览器,请尝试以下方法:
.btn-group.btn-block {
display: flex;
}
.btn-group.btn-block > .btn {
flex: 1;
}
这是一个小提琴:http://jsfiddle.net/DEwX8/124/
答案 4 :(得分:1)
Angular - 等宽按钮组
假设你的范围内有一系列'事物'......
<div class="btn-group"
style="width: 100%;">
<button ng-repeat="thing in things"
class="btn btn-default"
ng-style="{width: (100/things.length)+'%'}">
{{thing}}
</button>
</div>
答案 5 :(得分:1)
引导程序4已删除.btn-group-justified。作为替代,您可以使用<div class="btn-group d-flex" role="group"></div>
作为.w-100元素的包装。
尝试一下:
<div class="btn-group d-flex" role="group>
<button type="button" class="btn btn-primary w-100">Submit</button>
<button type="button" class="btn btn-primary w-100">Cancel</button>
</div>
答案 6 :(得分:0)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<div class="btn-group btn-block">
<button type="button" data-toggle="dropdown" class="btn btn-default btn-xs btn-block dropdown-toggle">Actions <span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span></button><ul role="menu" class="dropdown-menu"><li><a href="#">Action one</a></li><li class="divider"></li><li><a href="#" >Action Two</a></li></ul></div>
答案 7 :(得分:0)
Bootstrap 4
<ul class="nav nav-pills nav-fill">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Longer nav link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
答案 8 :(得分:0)
Bootstrap 4解决方案
<div class="btn-group w-100">
<button type="button" class="btn">One</button>
<button type="button" class="btn">Two</button>
<button type="button" class="btn">Three</button>
</div>
通过向其添加btn-group
类,您基本上告诉w-100
容器宽度为100%。里面的按钮将自动填充整个空间。