Bootstrap 3-отключить сворачивание навигационной панели
Это мой простой navbar:
<div class="navbar navbar-fixed-top myfont" role="navigation">
<div class="">
<ul class="nav navbar-nav navbar-left">
<li>
<a class="navbar-brand" href="#">
<img src="assets/img/logo.png"/>
</a>
</li>
<li>
<button class="btn btn-navbar">
<i class="fa fa-edit"></i>
Create
</button>
</li>
</ul>
</div>
<ul class="nav navbar-nav navbar-right">
<li data-match-route="/"><a href="#/page-one">Login</a></li>
<li data-match-route="/"><a href="#/page-two/sub-a">Signup</a></li>
</ul>
</div>
Я просто хотел бы предотвратить это, чтобы рухнуть, потому что мне это не нужно, как это сделать?
Я хотел бы избежать написания 300K строк CSS для переопределения стилей по умолчанию.
есть предложения?
6 ответов:
после тщательного изучения, не 300k строк, но есть около 3-4 свойств CSS, которые вам нужно переопределить:
.navbar-collapse.collapse { display: block!important; } .navbar-nav>li, .navbar-nav { float: left !important; } .navbar-nav.navbar-right:last-child { margin-right: -15px !important; } .navbar-right { float: right!important; }
и с этим ваше меню не рухнет.
объяснение
четыре свойства CSS делают соответствующие:
по умолчанию
.collapse
свойство в bootstrap скрывает правую сторону меню для планшетов (пейзаж) и телефонов, а вместо этого отображается кнопка переключения, чтобы скрыть/показать его. Таким образом, это свойство переопределяет значение по умолчанию и постоянно показывает эти элементы.чтобы меню правой стороны отображалось на той же строке вместе с левой стороной, нам нужно, чтобы левая сторона плавала влево.
это свойство присутствует по умолчанию в bootstrap, но не на планшете(портрет) для разрешения телефона. Вы можете пропустить это, скорее всего чтобы не влиять на общую навигационную панель.
это удерживает правое меню справа, а внутренние элементы (
li
) следует свойство 2. Так что у нас есть левая сторона поплавок покинули и справа поплавок права что приводит их в одну линию.
набвар рухнет на небольших устройствах. Точка коллапса определяется
@grid-float-breakpoint
в переменные. По умолчанию это будет до768px
. Для экранов ниже768
ширина экрана пикселей, навигационная панель будет выглядеть так:можно изменить
@grid-float-breakpoint
в переменные.меньше и перекомпилировать Bootstrap. При этом вам также придется изменить@screen-xs-max
в navbar.меньше. Вам нужно будет установить это значение для вашего нового@grid-float-breakpoint -1
. Смотреть также: https://github.com/twbs/bootstrap/pull/10465. это необходимо, чтобы изменить формы navbar и выпадающие списки в @grid-float-breakpoint на их мобильную версию тоже.самый простой способ-настроить bootstrap
находим переменную:
@grid-float-breakpoint
который расположен на
@screen-sm
, вы можете изменить его в соответствии с вашими потребностями. Надеюсь, это поможет!
для пользователей SAAS
добавьте свой заказ переменные типа
$grid-float-breakpoint: 0px;
до@import "bootstrap.scss";
вот подход, который оставляет поведение коллапса по умолчанию неизменным, позволяя всегда оставаться видимым новому разделу навигации. Его увеличение
navbar
;navbar-header-menu
это класс CSS, который я создал и не является частью собственно Bootstrap.место в
navbar-header
элемент послеnavbar-brand
:<div class="navbar-header-menu"> <ul class="nav navbar-nav"> <li class="active"><a href="#">I'm always visible</a></li> </ul> <form class="navbar-form" role="search"> <div class="form-group"> <input type="text" class="form-control" placeholder="Search"> </div> <button type="submit" class="btn btn-default">Submit</button> </form> </div>
добавить этот CSS:
.navbar-header-menu { float: left; } .navbar-header-menu > .navbar-nav { float: left; margin: 0; } .navbar-header-menu > .navbar-nav > li { float: left; } .navbar-header-menu > .navbar-nav > li > a { padding-top: 15px; padding-bottom: 15px; } .navbar-header-menu > .navbar-nav .open .dropdown-menu { position: absolute; float: left; width: auto; margin-top: 0; background-color: #fff; border: 1px solid #ccc; border: 1px solid rgba(0,0,0,.15); -webkit-box-shadow: 0 6px 12px rgba(0,0,0,.175); box-shadow: 0 6px 12px rgba(0,0,0,.175); } .navbar-header-menu > .navbar-form { float: left; width: auto; padding-top: 0; padding-bottom: 0; margin-right: 0; margin-left: 0; border: 0; -webkit-box-shadow: none; box-shadow: none; } .navbar-header-menu > .navbar-form > .form-group { display: inline-block; margin-bottom: 0; vertical-align: middle; } .navbar-header-menu > .navbar-left { float: left; } .navbar-header-menu > .navbar-right { float: right !important; } .navbar-header-menu > *.navbar-right:last-child { margin-right: -15px !important; }
Проверьте скрипку:http://jsfiddle.net/L2txunqo/
предостережение:
navbar-right
может используется для сортировки элементов визуально, но не гарантирует, чтобы вытащить элемент в самую дальнюю правую часть экрана. Скрипка демонстрирует такое поведение сnavbar-form
.
Если вы не используете меньшую версию, вот строка, которую вам нужно изменить:
@media (max-width: 767px) { /* Change this to 0 */ .navbar-nav .open .dropdown-menu { position: static; float: none; width: auto; margin-top: 0; background-color: transparent; border: 0; box-shadow: none; } .navbar-nav .open .dropdown-menu > li > a, .navbar-nav .open .dropdown-menu .dropdown-header { padding: 5px 15px 5px 25px; } .navbar-nav .open .dropdown-menu > li > a { line-height: 20px; } .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus { background-image: none; } }
следующее решение работало для меня в Bootstrap 3.3.4:
CSS:
/*no collapse*/ .navbar-collapse.collapse.off { display: block!important; } .navbar-collapse.collapse.off ul { margin: 0; padding: 0; } .navbar-nav.no-collapse>li, .navbar-nav.no-collapse { float: left !important; } .navbar-right.no-collapse { float: right!important; }
затем добавьте.no-collapse класс В каждый из списков и .выкл класс к основному контейнеру. Вот пример, написанный на нефрите:
nav.navbar.navbar-default.navbar-fixed-top .container-fluid .collapse.navbar-collapse.off ul.nav.navbar-nav.no-collapse li a(href='#' class='glyph') i(class='glyphicon glyphicon-info-sign') ul.nav.navbar-nav.navbar-right.no-collapse li.dropdown a.dropdown-toggle(href='#', data-toggle='dropdown' role='button' aria-expanded='false') | Tools span.caret ul.dropdown-menu(role='menu') li a(href='#') Tool #1 li a(href='#') | Logout
другой способ-просто удалить
collapse navbar-collapse
от разметки. Пример с Bootstrap 3.3.7<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <nav class="navbar navbar-atp"> <div class="container-fluid"> <div class=""> <ul class="nav navbar-nav nav-custom"> <li> <a href="#" id="sidebar-btn"><span class="fa fa-bars">Toggle btn</span></a> </li> </ul> <ul class="nav navbar-nav navbar-right"> <li>Nav item</li> </ul> </div> </div> </nav>