Bootstrap :如何更早地折叠导航栏

des4xlb0  于 2022-12-07  发布在  Bootstrap
关注(0)|答案(7)|浏览(209)

我想以低于768 px的分辨率折叠导航栏,例如992 px,我该怎么做?谢谢!(我知道我可以在引导页面上自定义它,但我不想用新的bootstrap.css文件重新启动我的项目)

j5fpnvbx

j5fpnvbx1#

如果您不想使用Less/Sass来操作Bootstrap(可能是因为您想通过CDN加载它),下面的代码对我来说很有用:

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

演示:https://jsfiddle.net/0pmy8usr/
将其添加到单独的CSS文件中,并将其包含在bootstrap.css之后

针对 Bootstrap 4得更新:

@media(max-width:900px) {
  .navbar .navbar-brand {float:none;display: inline-block;}
  .navbar .navbar-nav>.nav-item { float: none; margin-left: .1rem;}
  .navbar .navbar-nav {float:none !important;}
  .nav-item{width:100%;text-align:left;} 
  .navbar-toggler {display: block !important;}
  .navbar-toggleable-sm.collapse {display:none !important}
  .navbar-toggleable-sm.collapse.in {display:block !important}
}

演示:https://jsfiddle.net/mkvhbgnp/3/

rjee0c15

rjee0c152#

variables.less中,将

@grid-float-breakpoint:   @screen-sm-min

@grid-float-breakpoint: @screen-md-min;
pgpifvop

pgpifvop3#

如果您需要以低于768px的分辨率折叠导航栏,则需要使用@media min-widthmax-width,并且无需为此启动新项目,只需创建新的**. css文件(示例:custom.css)并将其插入到主bootstrap. css**下以覆盖其值。然后在其中编写以下代码:

代码:

@media (min-width: 992px) {
   .collapse {
       display: none !important;
   }
}

另外,你可以看看这个帖子:change bootstrap navbar collapse
我希望这会给你解决的办法。

v8wbuo2f

v8wbuo2f4#

你也可以覆盖引导类来弥补差距。Bellow是覆盖基本导航栏和下拉菜单的工作代码。并不是所有的类都覆盖Bellow,所以取决于你使用的是什么,你可能需要覆盖其他类。

@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;
        }
    }

click here for the live demo code

ff29svar

ff29svar5#

解决方法其实很简单,使用.navbar-expand-lg或.navbar-expand-xl类和<nav>标签。
范例:-

<nav class="navbar navbar-expand-lg navbar-light" role="navigation">
</nav>

谢谢大家。

wyyhbhjk

wyyhbhjk6#

我建议在项目中引入bootstrap来代替CDN,并简单地查找如下所示的媒体查询:

@media (min-width: 768px) {
  .navbar-expand-md {
    -ms-flex-flow: row nowrap;
    flex-flow: row nowrap; //...etc.

并将其更改为:

@media (min-width: 900px) {
  .navbar-expand-md {
    -ms-flex-flow: row nowrap;
    flex-flow: row nowrap; // ...etc.

或者,如果您使用CDN,请创建对该特定媒体查询的覆盖。

0tdrvxhp

0tdrvxhp7#

如果您希望它是菜单从媒体设备可折叠
您可以直接通过
可切换=“md”
否则,您可以通过设置bootstrap的sccs/ less来使用其他强制可折叠方法。

相关问题