Установите ширину группы кнопок на 100% и сделайте кнопки равной ширине?
Я использую 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%;
}
8 ответов:
BOOTSTRAP 2 (источник)
проблема в том, что на кнопках нет набора ширины. Попробуйте это:
.btn {width:20%;}
EDIT:
Примечание:
Если вы не хотите попробуйте и компенсируйте заполнение, которое вы можете использовать
box-sizing:border-box;
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>
там нет необходимости в дополнительных css
.btn-group-justified
класс это.вы должны добавить это к родительскому элементу, а затем обернуть каждый элемент btn в 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>
мне не нравится решение настроек ширины ВКЛ .btn, потому что он предполагает, что в нем всегда будет одно и то же количество элементов .btn-group. Это ошибочное предположение и приводит к раздутому, специфичному для презентации CSS.
лучшее решение-это изменить как .БТН-группа С.БТН-блок и ребенок .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/
Угловое - равная группа кнопок ширины
если у вас есть массив "вещи" в вашей области...
- убедитесь, что родительский div имеет ширину 100%.
- использовать НГ-повторить для создания кнопок в группе кнопок.
- использовать 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>
<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>
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>