Изменить точку останова начальной загрузки navbar без использования LESS

135

В настоящее время, когда ширина браузера падает ниже 768 пикселей, навигационная панель переходит в спящий режим. Я хочу изменить эту ширину на 1000 пикселей, поэтому, когда браузер находится ниже 1000 пикселей, навигационная панель переходит в спящий режим. Я хочу сделать это без использования LESS, я использую стилус, а не LESS.

Моя проблема такая же, как в этом вопросе: Bootstrap 3 Свернуть Navbar Свернуть

Но все ответы на эти вопросы объясняют, как это сделать, изменяя LESS-переменную. Я не имел дело с МЕНЬШЕ, я использую стилус, поэтому я хочу знать, как это можно сделать с помощью стилуса или другого метода.

Спасибо!

Теги:
responsive-design
navbar
collapse

13 ответов

45
Лучший ответ

Для этого вам нужно написать конкретный медиа-запрос. С вашего вопроса, ниже 768px, навигационная панель рухнет, поэтому примените ее выше 768px и ниже 1000px, как это:

@media (min-width: 768px) and (max-width: 1000px) {
   .collapse {
       display: none !important;
   }
}

Это скроет крах навигационной панели до появления по умолчанию блока начальной загрузки. По мере того, как класс коллапса переворачивается, внутренние активы внутри краха навигационной системы будут автоматически скрыты, как и мудрый, вы должны установить свой css по своему желанию.

  • 0
    В настоящее время навигационная панель рушится, когда ширина ниже 768 пикселей. Но я хочу, чтобы навигационная панель рухнула, когда ширина ниже 1000 пикселей. Для этого вам не нужно показывать .collapse между 768 и 1000?
  • 0
    да, класс collapse важен для экрана мобильного устройства, поэтому, если ширина меньше 768 пикселей, будет display:none панель навигации display:none , поэтому требуемое действие будет применено внутри отметки 768 и 1000 ...
Показать ещё 5 комментариев
220

Для Bootstrap 3.3.x здесь рабочий CSS переопределяет точку останова navbar. Измените 991px на размер пикселя точки, в которой вы хотите свернуть навигационную панель...

@media (max-width: 991px) {
  .navbar-header {
      float: none;
  }
  .navbar-left,.navbar-right {
      float: none !important;
  }
  .navbar-toggle {
      display: block;
  }
  .navbar-collapse {
      border-top: 1px solid transparent;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
  }
  .navbar-fixed-top {
      top: 0;
      border-width: 0 0 1px;
  }
  .navbar-collapse.collapse {
      display: none!important;
  }
  .navbar-nav {
      float: none!important;
      margin-top: 7.5px;
  }
  .navbar-nav>li {
      float: none;
  }
  .navbar-nav>li>a {
      padding-top: 10px;
      padding-bottom: 10px;
  }
  .collapse.in{
      display:block !important;
  }
}

Рабочий пример для 991px: http://www.bootply.com/j7XJuaE5v6

Примечание. Вышеупомянутое работает для чего-либо более 768 пикселей. Если вам нужно изменить его на меньше 768px, здесь пример меньше 768px.

2017 UPDATE для Bootstrap 4 (бета-версия)

Изменение точки останова навигатора проще в Bootstrap 4 с помощью классов navbar-expand-*:

<nav class="navbar fixed-top navbar-expand-sm">..</nav>

  • navbar-expand-sm= мобильное меню на экранах xs < 576px
  • navbar-expand-md= мобильное меню на экранах sm < 768px
  • navbar-expand-lg= мобильное меню на экранах md < 992px
  • navbar-expand-xl= мобильное меню на экранах lg < 1200px
  • navbar-expand= никогда не использовать мобильное меню
  • (no expand class)= всегда использовать мобильное меню

Если вы исключите navbar-expand-*, мобильное меню будет использоваться с шириной all. Здесь приведена демонстрация всех 6 навигационных состояний: Bootstrap 4 Пример Navbar

  • 0
    Попробуйте это при первом посещении: [ссылка] ( getbootstrap.com/customize Locate: «Меньше переменных» -> «Точки останова медиазапросов» Изменение: @ screen-lg значение от 1200px до 1920px Locate: «Grid system» -> @ grid-float -breakpoint Change: @ screen-sm-min на @ screen-lg Прокрутите до конца страницы. Нажмите «Скомпилировать и скачать» Извлеките и используйте эти загруженные файлы.
  • 0
    У меня есть много вещей в моем navbar. Я должен был также добавить "переполнение: прокрутка! Важно;" в определение ".collapse.in {}". В начальной загрузке "максимальная высота: 340 пикселей;"
Показать ещё 6 комментариев
44

в bootstrap3, измените эту переменную @grid-float-breakpoint на ту, которая вам нужна. Значение по умолчанию - 768px

  • 17
    Можете ли вы опубликовать пример, пожалуйста?
  • 2
    Имейте в виду, что если вы используете sass и не хотите заменять код поставщика (вы не должны), вы должны включить файл, содержащий переменную, с вашим пользовательским значением до загрузки файлов sass. Причина в том, что все переменные Bootstrap установлены по умолчанию! значения, поэтому нам нужно переопределить эти значения, сначала импортируя наши переменные.
Показать ещё 2 комментария
22

Наконец, выработано, как изменить ширину коллапса путём "@grid-float-breakpoint" в http://getbootstrap.com/customize/.

Перейдите к строке 2923 в bootstrap.css(также в мини-версии) и измените @media screen and (min-width: 768px) { на @media screen and (min-width: 1000px) {

Таким образом, код будет выглядеть следующим образом:

@media screen and (min-width: 1000px) {
  .navbar-brand {
    float: left;
    margin-right: 5px;
    margin-left: -15px;
  }
  .navbar-nav {
    float: left;
    margin-top: 0;
    margin-bottom: 0;
  }
  .navbar-nav > li {
    float: left;
  }
  .navbar-nav > li > a {
    border-radius: 0;
  }
  .navbar-nav.pull-right {
    float: right;
    width: auto;
  }
  .navbar-toggle {
    position: relative;
    top: auto;
    left: auto;
    display: none;
  }
  .nav-collapse.collapse {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
  }
}
  • 0
    Обратите внимание, что номер строки, которую вы указали, будет другим, если вы использовали настройщик : getbootstrap.com/customize
  • 1
    Просто изменил @grid-float-breakpoint в моих responsive.less работ для меня!
Показать ещё 2 комментария
13

В исходном коде Bootstrap 3.LESS существует переменная, определенная в variables.less, называемая @grid-float-breakpoint, которая имеет следующий полезный комментарий:

//**Point at which the navbar becomes uncollapsed
@grid-float-breakpoint: @screen-sm-min;

Соответствующее значение @grid-float-breakpoint-max установлено на значение минус 1px:

//**Point at which the navbar begins collapsing
@grid-float-breakpoint-max: (@grid-float-breakpoint-max - 1);

Решение:

Итак, просто установите значение @grid-float-breakpoint на 1000px и перестройте bootstrap.less в bootstrap.css:

например.

@grid-float-breakpoint: 1000px;
  • 0
    Как восстановить? Я попробовал эту командную строку: $ lessc bootstrap.less bootstrap.css но ничего не произошло
  • 0
    @AnthonyRn: Понятия не имею, как настроен ваш проект. Я просто обновил источник Bootstrap LESS в своем проекте VS 2013, и он был восстановлен при сохранении. возможно, вам следует задать новый вопрос?
Показать ещё 3 комментария
12

Я просто сделал это успешно, используя следующий код CSS.

@media(max-width:1000px)  {

    .navbar-collapse.collapse {
        display: none !important;
    }

    .navbar-collapse {
        overflow-x: visible !important;
    }

    .navbar-collapse.in {
      overflow-y: auto !important;
    }

    .collapse.in {
      display: block !important;
    }

}
  • 2
    Она не показывает свернутую кнопку меню, когда ширина составляет от 768 до 1000 пикселей.
  • 4
    @craftsman: Для кнопки используйте это: .navbar-toggle {display: block! важный; } .navbar-header {width: 100%; высота: 60 пикселей; }
Показать ещё 1 комментарий
9

Метод Sass для изменения параметров бутстрапа фактически документируется на странице bootstrap-sass github.

Просто переопределите переменные перед загрузкой @import:

$grid-float-breakpoint: 1000px;

@import 'bootstrap';
6

В дополнение к @Skely ответьте, чтобы сделать раскрывающееся меню внутри работы навигатора, также добавьте их классы для переопределения. Последний код ниже:

    @media (min-width: 768px) and (max-width: 991px) {
        .navbar-nav .open .dropdown-menu {
            position: static;
            float: none;
            width: auto;
            margin-top: 0;
            background-color: transparent;
            border: 0;
            -webkit-box-shadow: none;
            box-shadow: none;
        }
        .navbar-nav .open .dropdown-menu > li > a {
            line-height: 20px;
        }
        .navbar-nav .open .dropdown-menu > li > a,
        .navbar-nav .open .dropdown-menu .dropdown-header {
            padding: 5px 15px 5px 25px;
        }
        .dropdown-menu > li > a {
            display: block;
            padding: 3px 20px;
            clear: both;
            font-weight: normal;
            line-height: 1.42857143;
            color: #333;
            white-space: nowrap;
        }
        .navbar-header {
            float: none;
        }
        .navbar-toggle {
            display: block;
        }
        .navbar-collapse {
            border-top: 1px solid transparent;
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
        }
        .navbar-collapse.collapse {
            display: none!important;
        }
        .navbar-nav {
            float: none!important;
            /*margin: 7.5px -15px;*/
            margin: 7.5px 50px 7.5px -15px
        }
        .navbar-nav>li {
            float: none;
        }
        .navbar-nav>li>a {
            padding-top: 10px;
            padding-bottom: 10px;
        }
        .navbar-text {
            float: none;
            margin: 15px 0;
        }
        /* since 3.1.0 */
        .navbar-collapse.collapse.in { 
            display: block!important;
        }
        .collapsing {
            overflow: hidden!important;
        }
    }

демонстрационный код

4

В bootstrap v4 навигацию можно рано или поздно свернуть с помощью разных классов css

например:

  • Navbar-переключаемый-см
  • Navbar-переключаемый-мД
  • Navbar-переключаемой-Л.Г.

С помощью кнопки навигации:

  • скрытых см вверх
  • скрытого мкр-вверх
  • скрытых Л.Г. вверх
  • 0
    В текущей navbar-toggleable-sm мне кажется, что переход только к navbar-toggleable-sm , xs делает его никогда не переключающимся. Может быть, я делаю что-то не так. Спасибо!
  • 0
    @nerdwaller выглядит так, как будто ты прав, сделал правку от хз до см.
2

Для Bootstrap 3.3 это единственный код, который вам нужен:

@media (min-width: 768px) and (max-width: 1000px) {
   .navbar-collapse.collapse {
       display: none !important;
   }
   .navbar-toggle{
        display: block !important;
   }
   .navbar-header{
        float: none;
   }
}
2

Лучше всего использовать порт используемого вами процессора CSS.

Я большой поклонник SASS, поэтому в настоящее время я использую https://github.com/thomas-mcdonald/bootstrap-sass

Похоже, здесь есть вилка для Stylus: https://github.com/Acquisio/bootstrap-stylus

В противном случае поиск и замена - ваш лучший друг прямо в версии css...

  • 0
    Таким образом, для параметра поиска и замены это означает непосредственное редактирование медиа-запросов bootstrap.css? Могу ли я изменить медиазапрос, который относится только к навигационной панели? Мне сказали, что не стоит редактировать исходные файлы начальной загрузки, но я не знаю почему, что вы думаете?
1

Это сработало для меня Bootstrap3

@media (min-width: 768px) {
    .navbar-header {
          float: none;
      }
      .navbar-toggle {
          display: block;
      }
      .navbar-collapse {
          border-top: 1px solid transparent;
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
      }
      .navbar-collapse.collapse {
          display: none!important;
      }
      .navbar-collapse.collapse.in {
          display: block!important;
      }
      .navbar-nav {
          float: none!important;
          margin: 7.5px -15px;
      }
      .navbar-nav>li {
          float: none;
      }
      .navbar-nav>li>a {
          padding-top: 10px;
          padding-bottom: 10px;
      }
}

Взял время, чтобы понять эти два:

.navbar-collapse.collapse {
   display: none!important;
}
.navbar-collapse.collapse.in {
   display: block!important;
}
  • 0
    Это сработало для меня. Единственное исключение - минимальная ширина пикселя должна быть 1000 пикселей в приведенном выше примере.
0

Вот что помогло:

@media only screen and (min-width:769px) and (max-width:1000px){
.navbar-collapse.collapse {
    display: none !important;
}
.navbar-collapse.collapse.in {
    display: block !important;
}
.navbar-header .collapse, .navbar-toggle {
    display:block !important;
}
  • 0
    С вашим решением и предложением Veek я обнаружил, что в промежутке между 768 и 1000 поля неоправданно увеличиваются. Они в порядке за пределами этих пределов. В вашем решении значок свернутого меню также не остается справа после свертывания, а прижимается к «бренду».
  • 0
    Извините, я, очевидно, дурак. У меня все еще есть проблема неоправданно широких полей, появляющихся в этих пределах. Однако теперь я вижу, что официальный пример начальной загрузки в Интернете демонстрирует ту же проблему с полями.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню