如何在Bootstrap中添加汉堡菜单

63

我需要一些关于Bootstrap导航栏的帮助。我想在移动设备上通过汉堡图标进行切换。

这是在codepen上的演示: http://codepen.io/sadman/pen/hfGwv(链接无效)

.navbar,
.navbar-inverse {
  border-radius: 0;
  border: none;
  margin-bottom: 0;
  min-height: 80px;
}

.nav li {
  display: inline;
  color: white;
}

.navbar-inverse .navbar-nav>li>a {
  color: #ffffff;
  font-family: Lato;
  font-size: 1.7em;
  font-weight: 300;
  padding: 30px 25px 33px 25px;
}

.navbar-inverse .navbar-nav li a:hover {
  background-color: #444444;
  transition: 0.7s all linear;
  height: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">

<nav class="navbar navbar-inverse navbar-static-top" role="navigation">
  <div class="container">
    <ul class="nav navbar-nav">
      <li><a href="index.php">Home</a></li>
      <li><a href="about.php">About</a></li>
      <li><a href="#portfolio">Portfolio</a></li>
      <li><a href="#">Blog</a></li>
      <li><a href="contact.php">Contact</a></li>
    </ul>
  </div>
</nav>

3个回答

93
你只需要阅读getbootstrap.com上的代码。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">

<nav class="navbar navbar-inverse navbar-static-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li><a href="index.php">Home</a></li>
        <li><a href="about.php">About</a></li>
        <li><a href="#portfolio">Portfolio</a></li>
        <li><a href="#">Blog</a></li>
        <li><a href="contact.php">Contact</a></li>
      </ul>
    </div>
  </div>
</nav>


2
非常感谢!我确实在 Bootstrap 网站上看到了代码,但不太确定如何实现它。 - sadmansh
6
在 CodePen 中,点击汉堡菜单按钮时没有任何反应。 - niico
bs-example-navbar-collapse-1 是必需的吗?看起来像是从剪贴板复制过来的,不知道它是否真正必要,如果必要的话又该如何使用。 - chovy
使用您想要的ID,这只是一个示例。 - Macsupport
问题,带有class =“sr-only”的span标签有什么作用?我尝试删除它,但没有任何区别。 - Sahand
显示剩余7条评论

14

你可以使用 Bootstrap 中的图标来创建图标:

<a href="#" class="btn btn-info btn-sm">
    <span class="glyphicon glyphicon-menu-hamburger"></span>
</a>

然后在CSS中控制图标的大小:

.glyphicon-menu-hamburger {
  font-size: npx;
}

6
这在使用 Bootstrap 4 时不能直接实现(即不包括图标字形时),因为 Bootstrap 不再默认提供 glyphicons。我会帮助您进行翻译。 - Martin Carel
1
哦,好的。我很久没用 Bootstrap 了。我会编辑我的答案。 - Vasyl Gutnyk
1
你可以在Bootstrap 4中不使用glyphicon来完成它:https://getbootstrap.com/docs/4.4/components/navbar/#toggler - Paul

0

仅使用CSS(无图标集)Codepen

.nav-link #navBars {
margin-top: -3px;
padding: 8px 15px 3px;
border: 1px solid rgba(0,0,0,.125);
border-radius: .25rem;
}

.nav-link #navBars input {
display: none;
}

.nav-link #navBars span {
position: relative;
z-index: 1;
display: block;
margin-bottom: 6px;
width: 24px;
height: 2px;
background-color: rgba(125, 125, 126, 1);
border-radius: .25rem;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
   <!-- <a class="navbar-brand" href="#">
      <img src="https://getbootstrap.com/docs/4.0/assets/brand/bootstrap-solid.svg" width="30" height="30" class="d-inline-block align-top" alt="">
      Bootstrap
      </a> -->
   <!-- https://dev59.com/hF8d5IYBdhLWcg3w41nz -->
   <a class="nav-link" href="#">
      <div id="navBars">
         <input type="checkbox" /><span></span>
         <span></span>
         <span></span>
      </div>
   </a>
   <!-- /26317679 -->
   <div class="collapse navbar-collapse" id="navbarNav">
      <ul class="navbar-nav">
         <li class="nav-item active"><a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a></li>
         <li class="nav-item"><a class="nav-link" href="#">Features</a></li>
         <li class="nav-item"><a class="nav-link" href="#">Pricing</a></li>
         <li class="nav-item"><a class="nav-link disabled" href="#">Disabled</a></li>
      </ul>
   </div>
</nav>


1
汉堡菜单不响应“点击”事件。 - Rahil Wazir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接