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

Как отключить штабелирование загрузочных вкладок на небольших экранах

Я видел этот пост, но, будучи новым пользователем, я не могу комментировать, чтобы попросить разъяснения.

Я использую оправданные вкладки nav в Bootstrap и не хочу, чтобы они складывались на небольших экранах, так как у меня есть только две вкладки. Я бы хотел, чтобы они оставались бок о бок, просто сжимались, чтобы соответствовать экрану. Это то, что у меня есть:

    <!-- Nav tabs -->
<ul class="nav nav-tabs nav-justified" id="myTab">
  <li class="active"><a href="#ratings" data-toggle="tab">Ratings</a></li>
  <li><a href="#reviews" data-toggle="tab">Reviews</a></li>
</ul>

<!-- Tab panes -->
<div class="tab-content">
  <div class="tab-pane active" id="ratings">This is a rating section</div>
  <div class="tab-pane" id="reviews">This is for reviews. There should be some styling here.</div>
</div>

Поскольку связанная статья предлагает использовать медиа-запросы, я, похоже, не могу сделать эту работу. Я попробовал настроить следующие параметры для таргетинга только небольших экранов:

    @media (max-width: 768px) {
  .nav-justified > li {display: table-cell;}
}

Я не уверен, что я делаю неправильно, поэтому любая помощь очень ценится.

4b9b3361

Ответ 1

Попробуйте добавить col-xs-6 перед ссылками

    <!-- Nav tabs -->
<ul class="nav nav-tabs nav-justified" id="myTab">
  <div class="col-xs-6">
      <li class="active"><a href="#ratings" data-toggle="tab">Ratings</a></li>
  </div>    
  <div class="col-xs-6">    
      <li><a href="#reviews" data-toggle="tab">Reviews</a></li>
  </div>
</ul>

<!-- Tab panes -->
<div class="tab-content">
  <div class="tab-pane active" id="ratings">This is a rating section</div>
  <div class="tab-pane" id="reviews">This is for reviews. There should be some styling here.</div>
</div>

вы можете проверить здесь Bootply

Ответ 2

Проблема с некоторыми другими решениями заключается в том, что вкладки потеряют свои границы и другие элементы дизайна. Следующие медиа-запросы обеспечивают более полное соответствие вкладок как на конденсированных, так и на более широких экранах:

@media (max-width: 768px) {
  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-justified > li > a  {
    border-bottom: 1px solid #ddd !important;
    border-radius: 4px 4px 0 0 !important;
    margin-bottom: 0 !important;
  }
}

Ответ 3

Существует очень простой способ предотвратить стекирование:

CSS:

.nav li {
    display:table-cell !important;
}

Я искал это и был раздражен ответами, связанными с настраиваемым бутстрапом (я использую CDN), и LESS (который я не использую)

Это отлично работает для меня...

Ответ 4

Я попытался отредактировать ответ @pjb, поскольку он неполный. Но мое редактирование было отклонено дважды, поскольку, по-видимому, оно "неверно". Хотя плункер, как правило, не согласен...

Это оригинал, который показывает, что нижняя граница активных вкладок отображается при конденсировании

http://plnkr.co/edit/p62KlHnqPjAsK7XR3mLa?p=preview

И эта версия, где она явно не показывает

http://plnkr.co/edit/BBDW7nIxGh0J6a9vsuZx?p=preview

@media (max-width: 768px) {
  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-justified > li > a  {
    border-bottom: 1px solid #ddd !important;
    border-radius: 4px 4px 0 0 !important;
    margin-bottom: 0 !important;
  }
  .nav-tabs.nav-justified > .active > a,
  .nav-tabs.nav-justified > .active > a:hover,
  .nav-tabs.nav-justified > .active > a:focus {
    border-bottom-color: #fff !important;
  }
}

Ответ 5

В дополнение к ответу на james, если вы не хотите ограничивать максимальную ширину до 768 пикселей, вы можете сделать:

@media (min-width: 0px) {

  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }

}

Должен ли я избегать использования! важно в CSS?

Если вы предпочитаете не использовать !important в CSS, вставьте код после включения bootstrap.

Ответ 6

Многое зависит от того, хотите ли вы сохранить неповрежденную загрузку по умолчанию и просто добавить свою собственную тему вверху. В большинстве случаев это имеет смысл, так как вы можете захотеть укладывать вкладки для мобильных устройств позже на дорожке, если список вкладок растет до 3 или 4 и т.д. Что бы я сделал, это добавить новый класс в ul "custom- not-stacked", а затем добавьте этот css в таблицу стилей:

.nav-justified.custom-not-stacked>li {
display: table-cell;
width: 1%;
}
.nav-justified.custom-not-stacked>.active>a, 
.nav-justified.custom-not-stacked>.active>a:focus, 
.nav-justified.custom-not-stacked>.active>a:hover {
border-bottom-color: #fff;
}
.nav-justified.custom-not-stacked>li>a {
border-bottom: 1px solid #ddd;
border-radius: 4px 4px 0 0;
margin-bottom: 0;
}

Ответ 7

И отредактируйте ответ pjb, даже сохраните стиль по умолчанию для бутстрапа, оправданного nav-bar.

@media (max-width: 768px){
    .nav-justified > li {
        display: table-cell;
        width: 1%;
  }
    .nav-justified > li > a  {
        border-bottom: 1px solid #ddd !important;
        border-radius: 4px 4px 0 0 !important;
        margin-bottom: 0 !important;
  }
    .nav-justified > li.active > a  {
        border-bottom: 1px solid transparent !important;
  }

}

Ответ 8

Другим простым решением является добавление класса flex к элементу <ul> вместо nav-justified

.just {
  display: flex;
  flex-flow: row nowrap;
}

.just > li {
  flex: 1 auto;
  text-align: center;
  white-space: nowrap;
}

jsFiddle
Обратите внимание, что в случае многих вкладок некоторые из них могут зайти за ваш экран. Чтобы предотвратить это, вы можете добавить wrap вместо nowrap в flex flow. Таким образом, они действительно будут сгруппированы, но только в том случае, если обычно ситуация будет заходить за экран, то есть точка останова для warp укладки меньше, чем в случае nav-justified. Идите вперед и используйте row wrap на экране Fiddle и resize, чтобы узнать, о чем я говорю.

Ответ 9

МЕНЬШЕ - Bootstrap

Это ответ @pjb, преобразованный в LESS. В настоящее время я использую bootstrap.less, поэтому ниже - стиль, который я реализовал.

@media (max-width: @screen-xs-max) {

  .nav-justified {

    > li {
      display: table-cell;
      width: 1%;

      > a {
        border-bottom: 1px solid @nav-tabs-justified-link-border-color !important;
        border-radius: @border-radius-base @border-radius-base 0 0 !important;
        margin-bottom: 0 !important;
      }
    }
  }
}