javascript - div 上的下拉子菜单

标签 javascript html css

我在小屏幕的显示上遇到问题,尤其是下拉子菜单,单击下拉菜单时会影响显示并且不会正确对齐,如何在 div 顶部显示它正确对齐后,在更大/更宽的屏幕上似乎没问题,

请看下面的示例 css 和 html 代码,我正在使用 bootstrap 4:

提前谢谢你

.dropdown-submenu {
  position: relative;
}

.dropdown-submenu>.dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
  -webkit-border-radius: 0 6px 6px 6px;
  -moz-border-radius: 0 6px 6px;
  border-radius: 0 6px 6px 6px;
}

.dropdown-submenu:hover>.dropdown-menu {
  display: block;
}

.dropdown-submenu>a:after {
  display: block;
  content: " ";
  float: right;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
  border-width: 5px 0 5px 5px;
  border-left-color: #ccc;
  margin-top: 5px;
  margin-right: -10px;
}

.dropdown-submenu:hover>a:after {
  border-left-color: #fff;
}

.dropdown-submenu.pull-left {
  float: none;
}

.dropdown-submenu.pull-left>.dropdown-menu {
  left: -100%;
  margin-left: 10px;
  -webkit-border-radius: 6px 0 6px 6px;
  -moz-border-radius: 6px 0 6px 6px;
  border-radius: 6px 0 6px 6px;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

<div class="row">
  <div class="col--1 container-border navbar navbar-expand-sm bg-dark navbar-dark text-center">
    <a class="navbar-brand" href="home.html"><span class="oi oi-home" title="home" aria-hidden="true"></span></a>
  </div>
  <div class="col--3 container-border navbar navbar-expand-sm bg-dark navbar-dark">
    <ul class="navbar-nav" id="myNavbar">
      <li class="nav-item dropdown" style="z-index: 1;">
        <a class="nav-link dropdown-toggle" href="#" id="navbardrop" data-toggle="dropdown">Menu</a>
        <ul class="dropdown-menu multi-level" role="menu" aria-labelledby="dropdownMenu" style="z-index: 2;">
          <li class="dropdown-submenu">
            <a class="dropdown-item" tabindex="-1" href="#">Sub Menu</a>
            <ul class="dropdown-menu">
              <li class="dropdown-item"><a tabindex="-1" href="#">Drop 1</a></li>
              <hr>
              <li class="dropdown-item"><a tabindex="-1" href="#">Drop 2</a></li>
              <hr>
              <li class="dropdown-item"><a tabindex="-1" href="#">Drop 3</a></li>
            </ul>
          </li>
          <hr>
          <li class="dropdown-submenu">
            <a class="dropdown-item" tabindex="-1" href="#">Sub Menu 2</a>
            <ul class="dropdown-menu">
              <li class="dropdown-item"><a tabindex="-1" href="#">Drop 1</a></li>
              <hr>
              <li class="dropdown-item"><a tabindex="-1" href="#">Drop 2</a></li>
              <hr>
              <li class="dropdown-item"><a tabindex="-1" href="#">Drop 3</a></li>
            </ul>
          </li>
          <hr>
          <li class="dropdown-submenu">
            <a class="dropdown-item" tabindex="-1" href="#">Sub Menu 3</a>
            <ul class="dropdown-menu">
              <li class="dropdown-item"><a tabindex="-1" href="#">Drop 1</a></li>
              <hr>
              <li class="dropdown-item"><a tabindex="-1" href="#">Drop 2</a></li>
              <hr>
              <li class="dropdown-item"><a tabindex="-1" href="#">Drop 3</a></li>
            </ul>
          </li>
        </ul>
      </li>
    </ul>
  </div>
  <div class="col container-border navbar navbar-expand-sm bg-dark navbar-dark btn-group ml-auto container-border">
    <form name="frm1" class="form-inline btn-group-sm" action="/action_page.php">
      <div class="input-group ml-auto">
        <input type="text" class="form-control">
        <div class="input-group-btn">
          <button class="btn btn-light" type="submit">
    					<span class="oi oi-magnifying-glass" title="icon magnify" aria-hidden="true"></span>
    					</button>
        </div>
      </div>
    </form>
  </div>
  <div class="col--1 container-border navbar navbar-expand-sm bg-dark navbar-dark">
    <a class="navbar-brand" href="#"><span class="badge badge-secondary badge-pill">0</span><span class="oi oi-cart" title="cart" aria-hidden="true"></span></a>
  </div>
</div>

我希望它能表现得像大屏幕,拜托

最佳答案

经过数小时的研究,这个人做到了, ul和li位置

https://teamtreehouse.com/community/hover-dropdown-list-is-pushing-other-content-down-the-page

我打算通过使用 onclick 来更改下拉菜单的行为并更改内容,但它似乎没有定位在右侧,因为它不再有空间了。

关于javascript - div 上的下拉子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55100655/

相关文章:

javascript - div选择问题

javascript - 需要使用 jQuery Ajax 使用 Web API - 跨源资源共享 (CORS) 问题

javascript - 在标题移回页面顶部后将文本保持在原位

javascript - 从第二个函数调用中提交取消表单提交

html - 试图在 twitter bootstrap 2.3.2 行/跨度中对齐三个图像

javascript - CSS Grid - 突出显示单元格直到悬停的单元格

css - 您应该安装哪个 IE 版本来检查 IE 与 Mac 的 CSS 兼容性?

javascript - 应该如何将数据推送到数组中过滤对象的一部分?

javascript - 不到一分钱怎么铺地板,否则不要

javascript - 在 React.js 中通过字符串数组导入 FontAwesome 图标