Изменить точку останова сворачивания bootstrap navbar без использования меньше
В настоящее время, когда ширина браузера падает ниже 768px, панель навигации переходит в свернутый режим. Я хочу изменить эту ширину на 1000px, поэтому, когда браузер ниже 1000px, navbar переходит в свернутый режим. Я хочу сделать это, не используя меньше, я использую стилус не меньше.
моя проблема такая же, как в этом вопросе: Bootstrap 3 Navbar Collapse
но все ответы в этих вопросах объясняют, как это сделать, изменив меньшую переменную. Я не я использую стилус, поэтому я хочу знать, как это можно сделать с помощью стилуса или другого метода.
спасибо!
16 ответов
вы должны написать конкретные медиа-запросов для этого, из вашего вопроса, ниже 768px, navbar рухнет, поэтому примените его выше 768px и ниже 1000px, вот так:
@media (min-width: 768px) and (max-width: 1000px) {
.collapse {
display: none !important;
}
}
это скроет сворачивание navbar до появления по умолчанию загрузочного устройства. Когда класс collapse переворачивает внутренние активы внутри navbar collapse, они будут автоматически скрыты, как и wise, вам нужно установить css в соответствии с желаемым дизайном.
обновление 2018
Bootstrap 4
изменение точки останова navbar проще в Bootstrap 4 с помощью navbar-expand-*
классы:
<nav class="navbar fixed-top navbar-expand-sm">..</nav>
-
navbar-expand-sm
= мобильное меню на экранах xs -
navbar-expand-md
= мобильное меню на экранах sm -
navbar-expand-lg
= мобильное меню на экранах md -
navbar-expand-xl
= мобильное меню на экранах lg -
navbar-expand
= никогда не используйте мобильный меню -
(no expand class)
= всегда используйте мобильное меню
если исключить navbar-expand-*
мобильное меню будет использоваться в all
Ширин. Вот демонстрация всех 6 состояний navbar:Bootstrap 4 Navbar Пример
вы также можете использовать пользовательские точки останова (???px), добавив немного CSS. Например, вот 1300px..
@media (min-width: 1300px){
.navbar-expand-custom {
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-start;
}
.navbar-expand-custom .navbar-nav {
flex-direction: row;
}
.navbar-expand-custom .navbar-nav .nav-link {
padding-right: .5rem;
padding-left: .5rem;
}
.navbar-expand-custom .navbar-collapse {
display: flex!important;
}
.navbar-expand-custom .navbar-toggler {
display: none;
}
}
Bootstrap 4 таможни Navbar Останова
Bootstrap 4 Navbar Точки Останова Примеры
Bootstrap 3
Для 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
Рабочий пример для 1200px: https://www.codeply.com/go/VsYaOLzfb4 (с формой поиска)
Примечание: выше работает для чего-нибудь более 768px по. Если вам нужно изменить его на меньше, чем 768px по на пример меньше, чем 768px здесь.
на bootstrap3 измените эту переменную @grid-float-точка останова к одному вам. Значением по умолчанию является 768px по
наконец-то понял, как изменить ширину коллапса, играя с "@ grid-float-breakpoint " в http://getbootstrap.com/customize/.
перейти к строке 2923 в bootstrap.css (также минимальная версия) и change @media screen and (min-width: 768px) {
to @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;
}
}
Я просто сделал это успешно, используя следующий код 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;
}
}
в Bootstrap 3 .Меньше исходный код есть переменная, определенная в 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;
способ Sass изменения переменных начальной загрузки фактически документирован на bootstrap-sass страница github.
просто переопределите переменные перед @import bootstrap:
$grid-float-breakpoint: 1000px;
@import 'bootstrap';
в дополнение к @Skely ответ, чтобы сделать выпадающее меню внутри работы navbar также добавьте свои классы для переопределения. Финальный код:
@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;
}
}
в bootstrap v4 навигация может быть свернута рано или поздно, используя различные классы css
например:
- navbar-toggleable-sm
- navbar-toggleable-md
- navbar-toggleable-lg
с помощью кнопки для навигации:
- скрытый-sm-up
- hidden-md-up
- скрытый-lg-up
для 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;
}
}
лучше всего было бы использовать порт процессора CSS, который вы используете.
Я большой поклонник SASS, поэтому в настоящее время я использую https://github.com/thomas-mcdonald/bootstrap-sass
похоже, что здесь есть вилка для стилуса:https://github.com/Acquisio/bootstrap-stylus
в противном случае Search & Replace-ваш лучший друг прямо в версии css...
это сработало для меня 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;
}
Привет я думаю, вы можете сделать это с помощью CSS, как это вы можете изменить точку останова bootstrap menu
@media (max-width: 1200px) {
.navbar-header {
float: none;
}
.navbar-left,.navbar-right {
float: none !important;
}
.navbar-toggle {
display: block;
}
.navbar-collapse.collapse {
display: none!important;
}
.navbar-nav {
float: none!important;
}
.navbar-nav>li {
float: none;
}
.collapse.in{
display:block !important;
}
.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;
}
}
Это то, что сделал трюк для меня:
@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;
}
в bootstrap 4, Если вы хотите переехать, когда navbar-expand -*, расширяется и сворачивается и показывает и скрывает гамбургер (navbar-toggler), вы должны найти этот стиль/определение в bootstrap.css и переопределите его в своем собственном пользовательском стиле.css (или непосредственно в bootstrap.CSS, если вы так склонны).
например. Я хотел, чтобы navbar-expand-lg сворачивался и показывал navbar-toggler в 950px. В Bootstrap.css я нахожу:
@media (max-width: 991.98px) {
.navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid {
padding-right: 0;
padding-left: 0;
}
}
и ниже ...
@media (min-width:992px) {
... lots of styling ...
}
Я скопировал оба запроса @media и вставил их в свой стиль.css, затем изменил размер, чтобы соответствовать моим потребностям. Я хотел, чтобы он рухнул на 950px. Запросы @media должны быть разных размеров (я предполагаю), поэтому я установил максимальную ширину контейнера в 949.98 px и использовал 950px для другого запроса @media, поэтому следующий код был добавлен к моему стилю.стиль CSS. Это было нелегко отделить от скрученных решений, которые я нашел на Stackoverflow и в других местах. Надеюсь, это помогает.
@media (max-width: 949.98px) {
.navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid {
padding-right: 0;
padding-left: 0;
}
}
@media (min-width: 950px) {
.navbar-expand-lg {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
.navbar-expand-lg .navbar-nav {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
}
.navbar-expand-lg .navbar-nav .dropdown-menu {
position: absolute;
}
.navbar-expand-lg .navbar-nav .dropdown-menu-right {
right: 0;
left: auto;
}
.navbar-expand-lg .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem;
}
.navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid {
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
}
.navbar-expand-lg .navbar-collapse {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
-ms-flex-preferred-size: auto;
flex-basis: auto;
}
.navbar-expand-lg .navbar-toggler {
display: none;
}
.navbar-expand-lg .dropup .dropdown-menu {
top: auto;
bottom: 100%;
}
}
здесь мой рабочий код используется в React с Bootstrap
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
<style>
@media (min-width: 768px) and (max-width: 1000px) {
.navbar-collapse.collapse {
display: none !important;
}
.navbar-toggle{
display: block !important;
}
.navbar-header{
float: none;
}
}
</style>