Bootstrap 3 "btn-group" неадаптивное поведение на небольших экранах
Существует ли способ bootstrap 3 для обработки небольших размеров экрана для "btn-group"?
Группа кнопок помещается в <td> и оборачивается в <div class="btn-group">:

Выглядит нормально, пока вы не измените его размер до

Как сделать их стойкими? Я попытался добавить класс btn-group-justified. Но это дает в результате кнопки полной ширины и выглядит еще хуже при перенастройке до небольшого размера экрана.
P. S> у меня есть идея, как ее реализовать добавив полный набор кастомов занятия. Мой вопрос касается Bootstrap 3 way. Может быть, я что-то упустил.
8 ответов:
Я хочу предложить вам версию с иконами из FontAwesome. При минимальном разрешении экрана текст скрывают, оставляя только значки.
Извините за мой английский.
<div class="btn-group"> <button class="btn btn-default" title="View"><i class="fa fa-eye"></i><span class="hidden-xs"> View</span></button> <button class="btn btn-default" title="Delete"><i class="fa fa-times"></i><span class="hidden-xs"> Delete</span></button> </div>Обновление по Вишал Кумар: Добавить технологии glyphicons предварительный просмотр
Проверьте эту скрипку: http://jsfiddle.net/Jeen/w33GD/4/
Вы можете создать две группы кнопок с одинаковыми кнопками и сделать одну из них
btn-group-vertical. Затем после примененияhidden-xsиvisible-xsк ним вы можете скрыть и показать вертикальную группу на соответствующем размере экрана.<div class="btn-group hidden-xs"> <button class="btn btn-default">View</button> <button class="btn btn-default">Delete</button> </div> <div class="btn-group-vertical visible-xs"> <button class="btn btn-default">View</button> <button class="btn btn-default">Delete</button> </div>К сожалению, это требование повторяет разметку кнопок, но это не должно быть проблемой, если вы используете любой инструмент создания шаблонов (определите разметку один раз и включите ее дважды).
Широкий экран:
Узкий экран:
См. JSFiddle .
Вот альтернатива ответу @fracz, который вы можете попробовать, который не будет дублировать HTML-контент. Просто скопировал css из btn-vertical-group и btn-group и использовал медиа-запрос.
Все, что вам нужно сделать, это добавить btn-toolbar-responsive к классам панели инструментов div.
Он находится в scss для простоты, хотя вы можете легко конвертировать его в интернете. Вот JS Bin: демо
SCSS:
.btn-toolbar.btn-toolbar-responsive{ text-align: center; margin: 0; .btn-group{ float: none; } @media (max-width: 767px){ .btn + .btn, .btn + .btn-group, .btn-group + .btn, .btn-group + .btn-group { margin-top: -1px; margin-left: 0; } .btn-group{ position: relative; display: block; vertical-align: middle; margin: 0; .btn { display: block; float: none; max-width: 100%; } .btn:not(:first-child):not(:last-child) { border-radius: 0; } .btn:first-child:not(:last-child) { border-top-right-radius: 4px; border-top-left-radius: 4px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .btn:last-child:not(:first-child) { border-top-right-radius: 0; border-top-left-radius: 0; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; } } .btn-group:not(:first-child):not(:last-child) { .btn { border-radius: 0; } } .btn-group:first-child:not(:last-child) { .btn:last-child, .dropdown-toggle { border-bottom-right-radius: 0; border-bottom-left-radius: 0; } } .btn-group:last-child:not(:first-child) { .btn:first-child { border-top-right-radius: 0; border-top-left-radius: 0; } } } }
Хорошо, это сработало на тестовой странице, которую я сделал:
<div class='btn-group'> <button class='btn btn-default col-xs-6'>View</button> <button class='btn btn-default col-xs-6'>Delete</button> </div>Заставляя каждую кнопку быть на 50% с помощью col-xs-6, я не смог обернуть ее в мою собственную тестовую страницу, смоделированную по вашему примеру. Однако, если у вас более широкая таблица, чем в Примере, и вы сжимаетесь до 320px, текст будет переполнять кнопки, и это выглядит еще хуже, чем ваш плохой пример.
Возможно, вы уже знаете об этом, и это может быть непрактично для вашей ситуации, поэтому я извиняюсь, если просто привожу бесполезные примеры. Однако, если ваша таблица намного шире, чем то, что вы опубликовали в качестве примера, я бы предложил сделать ваши строки с использованием сетки BS вместо таблицы. Это позволяет превратить одну строку в две, когда страница сжимается, напримерЗатем просто найдите способ чередовать цвета, добавлять границы или все, что вам нужно, чтобы показать разделение между несколькими рядами строк.<div class='row'> <div class='col-xs-12 col-sm-6'>Some additional details</div> <div class='col-xs-6 col-sm-3'>Date</div> <div class='col-xs-6 col-sm-3'> <div class='btn-group'> <button class='btn btn-default col-xs-6'>View</button> <button class='btn btn-default col-xs-6'>Delete</button> </div> </div> </div>В сапоге, который я только что сделал, как я уже сказал, кнопки начинают перекрываться при очень малых размерах, но они не оборачиваются, когда внутри
<td>в моих тестах браузера:
Попробуйте установить min-width на
<td><td style="min-width: 90px"> <div class="btn-group"> <button class=" btn btn-default btn-circle" type="button"> <i class="fa fa-check"></i> </button> <button class=" btn btn-default btn-circle" type="button"> <i class="fa fa-question"></i> </button> <button class=" btn btn-default btn-circle" type="button"> <i class="fa fa-times"></i> </button> </div> </td>
<div id="secondNav" class="btn-group" role="group"> <button class='btn btn-default'>View</button> <button class='btn btn-default'>Delete</button> </div>Вы можете сделать это с помощью простого jQuery
<script> $(window).resize(function() { justifyBtnGroup('secondNav'); }); function justifyBtnGroup(id) { var btnGroup = $('#' + id); if($(window).width() > 768) { btnGroup.addClass('btn-group').removeClass('btn-group-vertical'); } else { btnGroup.removeClass('btn-group').addClass('btn-group-vertical'); } } justifyBtnGroup('secondNav'); // will run when page loads </script>
<div class="btn-group btn-group-lg">...</div> <div class="btn-group">...</div> <div class="btn-group btn-group-sm">...</div> <div class="btn-group btn-group-xs">...</div>Вы можете добавить класс (btn-group-xs, btn-group-sm) в носитель
Надеюсь, что это поможет вам ;)


Comments