Установите ширину группы кнопок на 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 64

8 ответов:

BOOTSTRAP 2 (источник)

проблема в том, что на кнопках нет набора ширины. Попробуйте это:

.btn {width:20%;}

EDIT:

Примечание:

Если вы не хотите попробуйте и компенсируйте заполнение, которое вы можете использовать box-sizing:border-box;

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

Bootstrap имеет .btn-group-justified класс css.

его структура зависит от типа используемых тегов.

С <a> теги

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

С <button> теги

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

на bootstrap 4 просто добавьте этот класс:

w-100

Угловое - равная группа кнопок ширины

если у вас есть массив "вещи" в вашей области...

  • убедитесь, что родительский 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>