将按钮组的宽度设置为100%并使按钮宽度相等?

时间:2013-01-07 22:22:26

标签: css twitter-bootstrap

我正在使用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%;
}

9 个答案:

答案 0 :(得分:153)

Bootstrap有.btn-group-justified css类。

它的结构如何基于您使用的标签类型。

With <a> tags

<div class="btn-group btn-group-justified" role="group" aria-label="...">
   ...
</div>

With <button> tags

<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;

http://www.w3schools.com/cssref/css3_pr_box-sizing.asp

答案 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的宽度为100%。
  • 使用ng-repeat在按钮组中创建按钮。
  • 使用ng-style计算每个按钮的宽度。
<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%。里面的按钮将自动填充整个空间。