【问题标题】:Display hamburger menu when mobile platform else desktop nav bar using bootstrap使用引导程序在移动平台其他桌面导航栏时显示汉堡菜单
【发布时间】:2017-02-18 20:42:27
【问题描述】:

您好,我只是在构建一个用于显示传感器数据的主页,我不是 Web 开发人员,我选择引导框架是为了让设计更加轻松,但是当我打开页面时,我无法获得汉堡菜单的工作手机,如果我在桌面上打开页面,我想要普通的导航栏,但是当我在手机上打开它时,我只想要汉堡菜单按钮,按下时应该显示导航栏的项目。

这是我的代码:

<!-- Bootstrap Core CSS -->
    <link href="vendor/bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet">
    <!-- Custom CSS -->
    <style>
    body {
        padding-top: 70px;
        font-family: "Roboto Slab","Helvetica Neue",Helvetica,Arial,sans-serif;

        /* Required padding for .navbar-fixed-top. Remove if using .navbar-static-top. Change if height of navigation changes. */
    }

    .no-border {
        border: none;
        background-color: white;
        outline: none;
        cursor: pointer;
    }
.color-no-focus {
        color: grey;
    }
  .hover:hover {
        color: blue;
    }
 .white {
        color: white;
    }


.btn-circle {
  width: 70px;
  height: 70px;
  text-align: center;
  padding: 6px 0;
  font-size: 12px;
  line-height: 1.42;
  border-radius: 32px;
  float: right;
}

    #container1
    {
      margin-bottom:10px
    }

    </style>

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
<!-- jQuery Version 1.11.1 -->
<!--script src=" vendor/jquery/1.11.1/jquery-1.11.1.js"></script-->
<!-- Bootstrap Core JavaScript -->
<script src="vendor/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script type="text/javascript" src="js/dataDisplay.js"></script>

</head>
  <body>
    <!-- Navigation -->
    <nav class="navbar navbar-inverse navbar-static-top" role="navigation">
        <div class="container">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" 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>
            <a class="navbar-brand" href="#">Access Home Online</a>
            </div>
            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="navbar navbar-default navbar-fixed-top" id="bs-example-navbar-collapse-1">
                <ul class="breadcrumb">
                    <li>
                        <a class="breadcrumb-item" href="index.htm">Home</a>
                    </li>
                    <li>
                        <a class="breadcrumb-item" href="settings.htm">Settings</a>
                    </li>
                    <li>
                        <a class="breadcrumb-item" href="connected-sites.htm">Sites</a>
                    </li>
                </ul>
            </div>
            <!-- /.navbar-collapse -->
        </div>
        <!-- /.container -->
    </nav>

这就是我在手机上收到的内容:

在移动视图中我不想要以上 3 个链接。

【问题讨论】:

  • 把我的电线弄混了...介意分享网址吗?或者有一个 JSFiddle?
  • 问题将是因为您的标记不正确,您有两个navbar,而应该是一个。 navbar 的兄弟姐妹应该是 collapse navbar-collapse 而不是导航栏中的导航栏,因为导航栏是菜单。
  • 你能解释一下你希望它在桌面上的样子吗?因为这是令人困惑的事情,因为从您的代码看起来您​​想要桌面菜单栏上方的面包屑,这是真的吗?
  • 我想要一个用于移动平台的汉堡菜单和其他用于桌面的菜单。
  • 那么让我看看我的理解是否正确?在桌面上,您想要品牌 Access Home Online 上方的面包屑,还是隐藏品牌而只是面包屑?

标签: javascript html


【解决方案1】:

汉堡包不起作用的主要问题是因为您有两个navbar 类,您只能在父容器上使用一次。由于您需要面包屑布局,因此最简单的方法是使用两种不同的菜单,一种用于台式机,一种用于移动设备。这不是最好的方法,但效果很好,如果您有良好的 CSS 知识和耐心,您可以删除额外的菜单并使用媒体查询重新处理 CSS 以模仿与类面包屑提供的相同样式。

这是有效的 HTML 代码:

<header>
  <ul class="breadcrumb">
    <li><a class="breadcrumb-item" href="index.htm">Home</a></li>
    <li><a class="breadcrumb-item" href="settings.htm">Settings</a></li>
    <li><a class="breadcrumb-item" href="connected-sites.htm">Sites</a></li>
  </ul>
  <nav class="navbar navbar-default navbar-inverse navbar-fixed-top">
    <div class="container-fluid">
      <!-- Brand and toggle get grouped for better mobile display -->
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="#">Access Home Online</a>
      </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.htm">Home</a></li>
          <li><a href="settings.htm">Settings</a></li>
          <li><a href="connected-sites.htm">Sites</a></li>
        </ul>
      </div>
    </div>
  </nav>
</header>

这是与此 HTML 配套的 CSS:

@media(max-width:767px){
  header .breadcrumb {
    display: none;
  }
}
@media(min-width:768px){
  header .navbar {
    display: none;   
  }
}

可以看到更新的 jsFiddle working online... 来测试各种模式 调整结果窗口的大小以模拟不同的设备尺寸。

3x 图标栏类的用途

bootstrap 使用 3x 图标栏跨度的原因是因为汉堡包图标由使用 CSS 的 3 行组成,对于 CSS 中的每一行:

.navbar-toggle .icon-bar {
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 1px;
}

每条线长22px,高2px,边框半径为1px。

【讨论】:

  • Toggle Navigation 下的 3 &lt;span class="icon-bar"&gt;&lt;/span&gt; 的用途是什么?这个汉堡菜单显示在移动设备和桌面上,我只想要导航栏在桌面的情况下可见
  • 我已经更新了代码和 jsFiddle。菜单根据设备的视角(分辨率)而有所不同......这就是 Bootstrap 以及大多数其他框架(如 Zurb Foundation)的工作方式。如果您想以不同的方式检测手机和台式机,那么 Bootstrap 默认菜单不适合您……您必须找到本问题未涉及的 JS 解决方案。
  • 如果你想让断点更小......然后将 767px 更改为 640px 并将 768 更改为 641px 等。
猜你喜欢
  • 2017-09-19
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
  • 2020-11-05
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多