Самый простой способ иметь макет начальной загрузки, где всегда отображается меню гамбургера
Я видел, как многие спрашивают об обратном, чтобы меню гамбургера никогда не появлялось даже в маленьких размерах экрана, но я не могу найти, как легко всегда включать меню гамбургера.
Как обычно выглядит:
![enter image description here]()
Это предполагает стандартную конфигурацию Bootstrap 3, созданную проектом Web-приложения Visual Studio 2013, поэтому вам не нужен стандартный HTML-код Visual Studio MVC или CSS Bootstrap.
Как я бы предпочла, чтобы он появился:
![enter image description here]()
Из созданной главной страницы из проекта веб-приложений VS 2013
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
@Html.ActionLink("ProjectName Here", "Index", "Home", null, new { @class = "navbar-brand hidden-xs" })
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Home", new { area = "" }, null)</li>
</ul>
</div>
</div>
</div>
Обновление:
Очевидно, что решение с использованием .Less
вполне приемлемо при использовании ASP.Net MVC, поэтому вам не нужно ограничивать ответы на исходный CSS. Последние события означают добавление Bootstrap.less к проекту теперь тривиально через NuGet. На самом деле большинство простых ответов на CSS будут иметь меньшую поддержку, чем любое решение, которое воспроизводит минимальный css из исходного источника.
Ответы
Ответ 1
Вы можете использовать этот CSS для переопределения поведения по умолчанию navbar
Bootstrap.
.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;
}
Использование CSS: http://bootply.com/jXxt4Dc54A
UPDATE
Этот вопрос был недавно изменен и помечен LESS. Как отметил @cvrebert, когда вопрос был изначально задан, @grid-float-breakpoint
можно установить в большое значение, если используется источник LESS.
Использование LESS: http://www.codeply.com/go/UNFhTH5Hm3
ОБНОВЛЕНИЕ для Bootstrap 4
Для Bootstrap 4 новые классы navbar-expand-*
были добавлены для управления точкой останова на панели навигации. Теперь navbar всегда сбрасывается, если только один из классов navbar-expand-*
явно не используется. Поэтому переменные no CSS (или SASS) необходимы, чтобы гамбургер всегда показывал.
<nav class="navbar navbar-light bg-light fixed-top">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsingNavbar1">
☰
</button>
<div class="navbar-collapse collapse" id="collapsingNavbar1">
<ul class="nav navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
</ul>
</div>
</nav>
Bootstrap 4: http://www.codeply.com/go/9WCE8jYmW8
Ответ 2
Я обнаружил, что решение @Skelly привело к тому, что меню рушится обратно после открытия. (по крайней мере, с нефиксированной версией навигатора). Поэтому я написал еще несколько CSS:
(удалите или измените медиа-запрос по желанию)
@media screen and (max-width: 991px){
.navbar-default{
background:none;
border:0;
position:absolute;
top:15px;
right:15px;
}
.navbar-collapse{
background:#f5f5f5;
}
.navbar-collapse.collapse{
display: none!important;
height: 0!important;
padding-bottom: 0;
overflow: hidden!important;
}
.navbar-toggle.collapsed{
display:block!important;
}
.navbar-toggle{
display:block!important;
}
.navbar-collapse.collapse.in{
display:block!important;
height:auto!important;
overflow:visible!important;
}
.navbar-nav>li,.navbar-header{
float:none;
}
.navbar-default .navbar-toggle.collapsed{
background:#fff;
}
}
Если вы не хотите изменять файл LESS и повторно компилировать.