Ширина загрузочной полосы 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/
Ответы
Ответ 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 кнопок).