![](/img/trans.png)
[英]Bootstrap Navbar Expand/collapse mobile without JavaScript
[英]Expand/collapse mobile navbar without JavaScript
在移动设备上,Bootstrap 3 默认将导航栏(navbar)缩小为汉堡图标。 单击汉堡包时,JavaScript 会切换导航菜单项的显示 - 展开或折叠导航栏。 但
如果这是可能的,它将具有很好的性能优势:用户已经可以在执行 JavaScript 之前导航(对于不稳定的移动连接来说是一个很好的加分),并且较小的项目可能能够放弃对 jQuery + bootstrap ZDE9B9ED78D7E2E2E1ZEEFFEE 的依赖,完全节省 7 左右在第一页加载。 另外,如果出现 JS 错误,网站会变得更加健壮——至少页面导航仍然可用。
或者,可以在不依赖 jQuery 的情况下重新实现引导 JS - 在此处为导航栏完成。
作为参考,这是static 导航栏顶部示例在移动模式下的样子:
是的,这是可能的!
创建包含导航栏状态的隐藏复选框(如果选中则展开)
将导航栏button
更改为此隐藏复选框的label
使用CSS General Sibling Selector切换导航栏的显示。
之前在SO上讨论了如何在没有JavaScript的情况下更改CSS属性,其原理如下所示1 。 应用此引导程序非常简单。
尝试使用rawgit进行现场演示 ,或者在flexponsive中查看它
Github项目bs3-navbar-collapse-without-javascript上提供了完整的演示。
首先,您需要添加自定义CSS:
/* show the collapse when navbar toggle is checked */
#navbar-toggle-cbox:checked ~ .collapse {
display: block;
}
/* the checkbox used only internally; don't display it */
#navbar-toggle-cbox {
display:none
}
然后更改导航栏HTML,如下所示:
<!-- insert checkbox -->
<input type="checkbox" id="navbar-toggle-cbox">
<!-- change the "hamburger" icon from being a button to a label for checkbox -->
<div class="navbar-header">
<label for="navbar-toggle-cbox" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</label>
<!-- end label not button -->
是否还有可用的 von Bootstrap 5.2 解决方案?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.