Подтвердить что ты не робот

Ширина загрузочной полосы 3 btn-group

У меня есть другая проблема, связанная с Bootstrap. Я хочу добавить радио и флажки в свою форму, я бы хотел, чтобы они также принимали 100% ширину элемента формы.

Я добавил группу кнопок следующим образом:

<div class="form-group">
    <label class="col-sm-3 control-label">Subscribe</label>
    <div class="col-sm-9">
        <div class="btn-group input-group" data-toggle="buttons">
            <label class="btn btn-success">
                <input type="radio" name="options" id="option1" />Yes</label>
            <label class="btn btn-primary">
                <input type="radio" name="options" id="option2" />Maybe</label>
            <label class="btn btn-danger">
                <input type="radio" name="options" id="option3" />No</label>
        </div>
    </div>
</div>

Это дает мне приятные радиоподобные кнопки:

Но, как видите, они имеют фиксированную ширину. Можно ли это исправить с помощью классов начальной загрузки? Здесь снова приведен пример кода http://jsfiddle.net/Misiu/yy5HZ/5/

4b9b3361

Ответ 1

Использовать встроенный .btn-group-justified класс: Оффициальные документы

Сделайте группу кнопок растягиваться на равных размерах, чтобы охватить весь ширину его родителя. Также работает с выпадающими кнопками в пределах группы кнопок.

Якоря:

<div class="btn-group btn-group-justified" role="group" aria-label="Justified button group"> 
    <a href="#" class="btn btn-default" role="button">Left</a>
    <a href="#" class="btn btn-default" role="button">Middle</a>
    <a href="#" class="btn btn-default" role="button">Right</a> 
</div>

Кнопки

Чтобы использовать обоснованные группы кнопок с элементами <button>, , вы должны обернуть каждой кнопки в группе кнопок. Большинство браузеров неправильно применяют наши CSS для обоснования элементов <button>, но поскольку мы поддерживаем мы можем обойти это.

<div class="btn-group btn-group-justified" role="group" aria-label="Justified button group">
  <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>

JSFiddle

Ответ 2

Вы можете просто использовать классы бутстрапов col-n, поэтому, если у вас есть 2 кнопки, вы используете для них col-xs-6. Проблема в том, что у вас есть, например, 5 кнопок. Для этого в классе бутстрапов нет класса. Поэтому я использую одно из следующих действий:

Для различия между группами с различным количеством кнопок используются дополнительные пользовательские классы:

JSFiddle

CSS

.btn-group {
    width: 100%;
}
.btn-group-2 label.btn  {
    width: 50%;
}
.btn-group-3 label.btn  {
    width: 33.3%;
}

HTML

<div class="btn-group btn-group-3 input-group" data-toggle="buttons">
    <label class="btn btn-success">
        <input type="radio" name="options" id="option1" />Yes</label>
    <label class="btn btn-primary">
        <input type="radio" name="options" id="option2" />Maybe</label>
    <label class="btn btn-danger">
        <input type="radio" name="options" id="option3" />No</label>
</div>

Если вы хотите избежать этих классов css, вы можете использовать только jQuery:

JSFiddle

$('.btn-group').each(function(index, item) {
    $(item).find('.btn').css(
        'width', 100 / $(item).find('.btn').length + '%'
    )
});

Ответ 3

Другое решение:

.btn-group {
    display: flex;
    flex-direction: row;
}

.btn-group > button {
    width: 100%;
}

Ответ 4

Вы можете просто добавить собственный класс и дать им 33% ширины (для 3 кнопок) или 50% ширины (для 2 кнопок).