目前,当浏览器宽度降至768px以下时,导航栏将更改为折叠模式。我想将此宽度更改为1000px,因此当浏览器低于1000px时,导航栏将更改为折叠模式。我想在不使用LESS的情况下这样做,我使用手写笔不是很少。
我的问题与此问题相同:Bootstrap 3 Navbar Collapse
但是那些问题的所有答案都解释了如何通过改变LESS变量来做到这一点。我没有处理过LESS,我正在使用手写笔,所以我想知道如何使用手写笔或其他方法来完成。
谢谢!
答案 0 :(得分:354)
2018更新
Bootstrap 4
使用navbar-expand-*
类在Bootstrap 4中更改导航栏断点更容易:
<nav class="navbar fixed-top navbar-expand-sm">..</nav>
navbar-expand-sm
= xs屏幕上的移动菜单&lt; 576px navbar-expand-md
= sm屏幕上的移动菜单&lt; 768px navbar-expand-lg
= md屏幕上的移动菜单&lt; 992px navbar-expand-xl
= lg屏幕上的移动菜单&lt; 1200px navbar-expand
=从不使用移动菜单(no expand class)
=始终使用移动设备菜单如果您排除navbar-expand-*
,移动菜单将以all
宽度使用。这是所有6个导航栏状态的演示:Bootstrap 4 Navbar Example
您还可以通过添加一个CSS来使用自定义断点(??? px)。例如,这里是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 Custom Navbar Breakpoint
Bootstrap 4 Navbar Breakpoint Examples
<小时/> Bootstrap 3
对于Bootstrap 3.3.x,这里是工作 CSS来覆盖导航栏断点。将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(带搜索表单)
注意:上述内容适用于 over 768px 的任何内容。如果您需要将其更改为 小于768px example of less than 768px is here。
答案 1 :(得分:48)
你必须为此编写一个特定的媒体查询,从您的问题,在768px以下,导航栏将崩溃,因此将其应用于768px以上且1000px以下,就像那样:
@media (min-width: 768px) and (max-width: 1000px) {
.collapse {
display: none !important;
}
}
这将隐藏导航栏折叠,直到默认出现引导程序单元。当崩溃类翻转时,导航栏内部的内部资产将自动隐藏,就像你必须按照你想要的设计设置你的css一样。
答案 2 :(得分:44)
在 bootstrap3 中,将此变量 @ grid-float-breakpoint 更改为您需要的变量。默认值为768px
答案 3 :(得分:23)
最后通过在http://getbootstrap.com/customize/摆弄'@ grid-float-breakpoint'来解决如何更改折叠宽度的问题。
转到bootstrap.css(也是最小版本)中的第2923行并将@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;
}
}
答案 4 :(得分: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;
}
}
答案 5 :(得分:12)
在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
:
e.g。
@grid-float-breakpoint: 1000px;
答案 6 :(得分:11)
更改引导变量的Sass方法实际上记录在bootstrap-sass github页面上。
在@import bootstrap之前重新定义变量:
$grid-float-breakpoint: 1000px;
@import 'bootstrap';
答案 7 :(得分:7)
除了@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;
}
}
答案 8 :(得分:4)
在bootstrap v4中,导航可以使用不同的css类迟早折叠
例如:
使用导航按钮:
答案 9 :(得分:3)
对于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;
}
}
答案 10 :(得分:3)
Navbars可以利用.navbar-toggler,.navbar-collapse和.navbar-expand {-sm | -md | -lg | -xl}类在内容折叠到按钮后时进行更改。与其他实用程序结合使用,您可以轻松选择何时显示或隐藏特定元素。
对于永不折叠的导航栏,请在导航栏上添加.navbar-expand类。对于始终折叠的导航栏,请不要添加任何.navbar-expand类。
例如:
<nav class="navbar navbar-expand-lg"></nav>
大屏幕显示移动菜单。
答案 11 :(得分:2)
您最好的选择是使用您使用的CSS处理器的端口。
我是SASS的忠实粉丝所以我目前使用https://github.com/thomas-mcdonald/bootstrap-sass
看起来这里有针对Stylus的分支:https://github.com/Acquisio/bootstrap-stylus
否则,搜索&amp;在css版本中,替换是你最好的朋友...
答案 12 :(得分:2)
这对我来说起了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;
}
答案 13 :(得分:1)
嗨,我认为你可以像这样使用CSS 你可以改变断点引导菜单
@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;
}
}
答案 14 :(得分: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;
}
答案 15 :(得分:0)
在bootstrap 4中,如果你想在navbar-expand- *时进行覆盖,展开和折叠并显示和隐藏汉堡包(navbar-toggler),你必须在bootstrap.css中找到该样式/定义,并重新定义它在你自己的customstyle.css中(如果你是如此倾向于直接在bootstrap.css中)。
EG。我希望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查询并将它们粘贴在我的style.css中,然后根据我的需要修改了大小。我的情况我希望它以950px的速度崩溃。 @media查询必须是不同的大小(我猜),所以我将容器max-width设置为949.98px并将950px用于其他@media查询,因此以下代码被附加到我的style.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%;
}
}
答案 16 :(得分:0)
这里我的工作代码在React with 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>
答案 17 :(得分:0)
Bootstrap 4.4现在支持它
navbar-expand-sm
答案 18 :(得分:0)
这是我的工作代码。 (下拉导航栏链接也有效)
@media (max-width: 1199px) {
.navbar-nav {
margin: 7.5px -15px;
}
.ul-links {
display: block;
}
.navbar-nav>li>a {
padding-top: 10px;
padding-bottom: 10px;
line-height: 20px;
}
.navbar-header {
float: none;
}
.navbar-left,.navbar-right {
float: none !important;
}
.navbar-toggle {
display: block;
}
.navbar-collapse.collapse {
display: none!important;
max-height: none;
}
.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;
}
}