有没有办法增加bootstrap 3导航栏崩溃的点(即,它会折叠成纵向平板电脑上的下拉列表)?
这两个适用于bootstrap 2但现在不适用!
How to change navbar collapse threshold using Twitter bootstrap-responsive?
有没有办法增加bootstrap 3导航栏崩溃的点(即,它会折叠成纵向平板电脑上的下拉列表)?
这两个适用于bootstrap 2但现在不适用!
How to change navbar collapse threshold using Twitter bootstrap-responsive?
12 回答
nabvar将在小型设备上崩溃 . 折叠点由变量中的@ grid-float-breakpoint定义 . 默认情况下,这将在768px之前 . 对于低于768像素屏幕宽度的屏幕,导航栏将如下所示:
可以在variables.less中更改@ grid-float-breakpoint并重新编译Bootstrap . 执行此操作时,您还必须在navbar.less中更改@ screen-xs-max . 您必须将此值设置为新的@ grid-float-breakpoint -1 . 另见:https://github.com/twbs/bootstrap/pull/10465 . 这是必要的将@ grid-float-breakpoint中的导航栏形式和下拉列表更改为其移动版本 .
我今天遇到了同样的问题 .
Bootstrap 4
这是一个原生功能:https://getbootstrap.com/docs/4.0/components/navbar/#responsive-behaviors
你必须使用
.navbar-expand{-sm|-md|-lg|-xl}
类:Bootstrap 3
只需将
991px
改为1199px
即md
尺寸 .Demo
Bootstrap 2和Bootstrap 3之间的最大区别在于Bootstrap 3是“移动优先” .
这意味着默认样式是为移动设备设计的,对于Navbars,这意味着它默认为“折叠”,当达到某个最小尺寸时“展开” .
Bootstrap 3的网站实际上有一个"hint"如何做:http://getbootstrap.com/components/#navbar
如果're going to re-compile your LESS, you'll在
variables.less
文件中找到所提到的LESS变量 . 它目前被Bootstrap 3术语设置为"expand"@media (min-width: 768px)
,这是一个"small screen"(即平板电脑) .@grid-float-breakpoint: @screen-tablet;
如果你想让折叠时间再长一点,你可以像这样调整它:
@grid-float-breakpoint: @screen-desktop;
(992px断点)或者尽早扩大
@grid-float-breakpoint: @screen-phone
(480px断点)如果您希望稍后进行扩展,而不是重新编译LESS,则必须覆盖在
768px
媒体查询中应用的样式,并让它们返回到先前的值 . 然后在适当的时候重新添加它们 .我不确定是否有更好的方法 . 根据您的需要重新编译Bootstrap LESS是最好(最简单)的方法 . 否则,您必须找到影响Navbar的所有CSS媒体查询,将它们覆盖为默认样式@ 768px宽度,然后以更高的最小宽度将其还原 .
通过更改变量,重新编译LESS将为您完成所有神奇的工作 . 这是LESS / SASS预编译器的重点 . =)
(注意,我确实看了他们一切,这是大约100行代码,这对于我放弃这个想法并且只是为给定项目重新编译Bootstrap并且避免意外搞砸事情而烦恼)
我希望有所帮助!
干杯!
Easiest way is to customize bootstrap
找到变量:
设置为@ screen-sm,您可以根据需要进行更改 . 希望能帮助到你!
这些都是在变量中控制的,不需要在源代码中捣乱 . 使用bootstrap,首先尝试变量,然后覆盖 . 然后回去再次尝试变量;)
我使用带有rails的bootstrap-sass,但它与默认的LESS相同 .
而已!这个变量参考页面非常方便:https://github.com/twbs/bootstrap/blob/master/less/variables.less
感谢Seb33300,我得到了这个工作 . 然而,似乎缺少一个重要的部分 . 至少在Bootstrap 3.1.1版中 .
我的问题是导航栏以正确的宽度相应地折叠,但是菜单按钮不起作用 . 我无法展开和折叠菜单 .
这是因为collapse.in类被.navbar-collapse.collapse中的!important所覆盖,并且可以通过添加“collapse.in”来解决 . Seb33300的例子在下面完成:
我想对jmbertucci的回答进行投票和评论,但我还没有被控制信任 . 我有同样的问题并按照他的说法解决了 . 如果您使用的是Bootstrap 3.0,请在variables.less中编辑LESS变量 . 响应断点设置在第200行附近:
然后在约232行使用@ grid-float-breakpoint变量设置导航栏的折叠值 . 默认情况下,它设置为@ screen-tablet . 如果你想要你可以使用像素值,但我更喜欢使用LESS变量 .
如果您遇到的问题是 menu breaking into multiple lines ,您可以尝试以下方法之一:
1)尝试减少菜单项的数量或长度,例如删除菜单项或缩短单词 .
2)减少菜单项之间的填充,如下所示:
默认填充为两侧(左侧和右侧)15px .
如果您希望更改每个单独的用户:
此设置也会影响下拉列表 .
这不能回答这个问题,但它可以帮助那些不想搞乱CSS或使用LESS变量的人 . 解决这个问题的两种常用方法 .
我担心自定义Bootstrap后面的维护和升级问题 . 我可以记录今天的自定义步骤,并希望从现在起三年后升级Bootstrap的人将找到文档并重新应用这些步骤(在那时可能会或可能不会起作用) . 我想,可以以任何一种方式进行论证,但我更喜欢在我的代码中保留任何自定义 .
不过,我不太明白Seb33300的方法是如何工作的 . 它肯定不适用于Bootstrap 4.0.3 . 要使导航栏以1200而不是768展开,必须覆盖两个媒体查询的规则,以防止在768处扩展并在1200处强制扩展 .
我有一个更长的菜单,可以在纵向模式下包裹在iPad上 . 以下菜单折叠到1200断点:
我使用Bootstrap 3.0.0安装了CSS方式,因为我对LESS并不熟悉 . 这是我添加到我的自定义css文件(我在bootstrap.css之后加载)的代码,它允许我控制所以菜单总是像
accordion
一样工作 .Note: 我将整个
navbar
包装在一个带有类sidebar
的div中,以分离出我想要的行为,因此它不会影响我网站上的其他导航栏,如主菜单 . 根据您的需求调整,希望它有所帮助 .附加说明:我还在主菜单
navbar
的切换中添加了一个更改(因为我网站上面的代码用于侧面的"submenu" .我变了:
成:
然后还调整:
成:
如果你只有一个
navbar
我想你不需要担心这个,但它对我有帮助 .对于那些想要以低于标准768px(宽度小于768px的宽度)的宽度折叠的人来说,这是需要的css:
我想我找到了一个简单的解决方案来改变崩溃断点,只能通过css .
我希望其他人可以证实,因为我没有彻底测试它,我不确定这个解决方案是否有副作用 .
您必须更改以下类定义的媒体查询值:
这对我目前的项目有用,但我仍需要更改一些css定义,以便为所有屏幕尺寸正确排列菜单 .
希望这可以帮助 .