使图像成为下拉菜单

Posted

技术标签:

【中文标题】使图像成为下拉菜单【英文标题】:Make Image a DropDown menu 【发布时间】:2018-06-07 14:54:01 【问题描述】:

有谁知道我如何将图像用作导航栏,

我想将我的徽标用作按钮,这样当用户单击徽标时,会出现一个下拉菜单,该菜单会填满整个页面。

目前我有一个汉堡标签,并且正在像这样实现下拉菜单

          <nav class="navbar navbar-inverse">
        <div class="container-field">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" 
              data-target="#myNavbar">
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
           </button>
          <a class="navbar-brand" href="#">

         <div class="collapse navbar-collapse" id="myNavbar"> 
           <ul class="nav navbar-nav navbar right">
              <li class="active"><a href="Health.html">Health</a></li>
              <li><a href="Insurance.html">Insurance</a></li>
              <li><a href="Track.html">Track</a></li>
           </ul>
         </div>
       </div>
     </nav>


 .navbar 
        margin-bottom: 0;
        border-radius: 0;
        background-color: darkgray;
        color: #fff;
        padding: 1% 0;
        font-size: 1.2em;
        border:0;
        background-image: i
    
    .navbar-brand 
        float: right;
        min-height: 55px;
        padding: 0 15px 5px;
    
    .navbar-inverse .navbar-nav .active a, .navbar-inverse .navbar-nav .active 
     a:focus,  .navbar-inverse .navbar-nav .active a:hover  
        color: #fff;
        background-color: darkgray;
    
    .navbar-inverse .navbar-nav li a 
        Color:#D5D5D5;
   

【问题讨论】:

下拉菜单本质上不会占据整个页面:/ 另外,如果您将 codepen 或 jsfiddle 放在一起会有所帮助 我只希望它填充移动设备上的页面,还是有更好的方法来解决这个问题?我主要只是希望我的徽标成为下拉菜单 我很难理解你所说的下拉菜单是什么意思?! this 是我认为的下拉菜单。注意它是如何不占据整个屏幕的。如果您希望通过单击徽标来“触发”全屏菜单,最好的办法是使用 javascript 并最初使用 display: none 创建一个整页元素,然后在徽标上监听 click 事件这会切换其 display 属性的值 上面的引导代码可以做你想做的事。 是的。我会回来的 【参考方案1】:

既然你说你可以使用 JavaScript。

将以下代码添加到您的 HTML 文档中:

<!DOCTYPE html>
    ...
    <script type="text/javascript" src="thePathToYourJSfile.js"></script>
  </body>
</html>

使用 CSS,您可以随心所欲地为您的菜单设置样式,还可以添加:

display: none;

您的 JavaScript 可能如下所示:

var logo = document.getElementById('id-of-your-logo')
var menu = document.getElementById('id-of-your-menu')

// this attaches a listener for the click event to your logo element
logo.onclick = function() 

  // when your logo is clicked, the code in this function will execute

  // the code below checks whether or not the menu is already displaying, and then displays the menu or hides it accordingly
  menu.style.display = window.getComputedStyle(menu).display !== "none" ? "none" : "block" 


【讨论】:

非常感谢 Anthony,因此只需将 javascript 链接到页面并使用 css 添加徽标和样式! 是的,在您的 HTML 中,您必须引用或链接 JavaScript 文件。此外,您可以使用 CSS 为您的徽标和菜单设置任何您想要的样式,但要使其具有仅在您单击徽标时才会出现菜单的效果,您必须首先还使用 CSS 隐藏菜单(除非您想要菜单最初显示) 太好了,所以只是为了澄清一下,我在 CSS 中添加了徽标?没错,所以我必须确保在页面首次加载时将其设置为隐藏。 您可以使用 HTML 正常添加您的徽标,并使用 CSS 正常设置它的样式。是的,如果您不希望在页面初始加载时显示菜单,则需要在 CSS 中使用 display: none; 隐藏徽标。 非常感谢安东尼我一定要试一试!【参考方案2】:

您的 html 有一些小错误。应该是这样的

<nav class="navbar navbar-inverse">
    <div class="container-field">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
       </button>
      <a class="navbar-brand" href="#">Logo</a>
     </div>

     <div class="collapse navbar-collapse" id="myNavbar"> 
       <ul class="nav navbar-nav navbar right">
          <li class="active"><a href="Health.html">Health</a></li>
          <li><a href="Insurance.html">Insurance</a></li>
          <li><a href="Track.html">Track</a></li>
       </ul>
    </div>
   </div>      
</nav>

如果您遇到任何问题,请告诉我们

【讨论】:

感谢您的帮助,我刚刚添加了您给我的更正代码(顺便谢谢您:P),我仍然得到一个带有文本显示(徽标)的汉堡标签,是吗是否可以只在所有屏幕上显示徽标,然后只有当用户单击它时才会显示下拉菜单? 刚刚添加了我的徽标,但它仍然显示在汉堡选项卡之外,我是否必须删除图标栏的跨度类并将其替换为我想要使用的图像?跨度> 它可以工作(没有你的 CSS)。我刚刚测试过。徽标区域是另一回事。你有两个选择:1)要么只放文本,要么 2)图像。但是您必须创建适合其中的图像。我通常使用名为 IrfanView 的工具来创建此类图像。 我可以让汉堡标签区域更大以容纳更大的徽标吗?还是必须像汉堡标签一样小? 我也不希望显示菜单的内容,只显示徽标,所以点击时出现的文本是不是完全有可能?

以上是关于使图像成为下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

如何使 Bootstrap 下拉菜单成为必需?

Jquery下拉菜单单击始终打开

下拉菜单中的引导下拉样式很奇怪

Bootstrap 3:如何在导航栏中使下拉链接的头部可点击

如何使下拉菜单的高度与引导程序4中子菜单的高度相同

使下拉式菜单在不悬停时保持不变