javascript - 如何修复覆盖内容的 Bootstrap 下拉菜单?

标签 javascript jquery html css bootstrap-4

我有一个 Bootstrap 下拉按钮,我希望它位于页面的右侧。

下拉菜单占页面宽度的 100%,并且在激活时应覆盖页面上的所有内容。但是,我在下拉按钮的左侧放置了一个大 Logo ,我希望用户能够单击该 Logo 将他们带回主页。不幸的是,这个标志的一部分被 Bootstrap 按钮覆盖了。

<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <title></title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>

<body>
  <a href="#">
    <div class="logo" style="width: 300px; height: 300px; background-color: black;"></div>
  </a>
  <div class="dropdown custom-drop hide">
    <a class="btn float-right btn-secondary btn-lg dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Menu
  </a>
    <div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
      <a class="dropdown-item" href="#">Action</a>
      <a class="dropdown-item" href="#">Another action</a>
      <a class="dropdown-item" href="#">Something else here</a>
    </div>
  </div>
  <style>
    .dropdown {
      position: absolute;
      z-index: 99;
      width: 100%;
      top: 100px;
    }
    
    .dropdown-toggle {
      margin-right: 50px;
    }
    
    .dropdown-menu {
      text-align: center;
      z-index: 999;
      width: 100%;
    }
    
    .dropdown-item {
      padding: 0.75rem 1.5rem;
      width: 100%;
    }
  </style>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
</body>

</html>

我该如何解决这个问题?

最佳答案

您可以限制下拉菜单的区域并更改其宽度。

<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <title></title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>

<body>
  <div class="logo-container">
    <a href="#">
      <div class="logo"></div>
    </a>
  </div>
  <div class="dropdown custom-drop hide">
    <a class="btn float-right btn-secondary btn-lg dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Menu
  </a>
    <div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
      <a class="dropdown-item" href="#">Action</a>
      <a class="dropdown-item" href="#">Another action</a>
      <a class="dropdown-item" href="#">Something else here</a>
    </div>
  </div>
  <style>
    .logo-container {
      width: 300px;
      height: 300px;
      overflow: hidden;
    }
    .logo {
      background-color: black;
      width: 100%;
      height: 100%;
    }
    .dropdown {
      position: absolute;
      z-index: 99;
      width: calc(100% - 320px);
      top: 100px;
      right: 0px;
    }
    
    .dropdown-toggle {
      margin-right: 50px;
    }
    
    .dropdown-menu {
      position: absolute;
      text-align: center;
      z-index: 999;
      width: calc(100% + 320px);
    }
    
    .dropdown-item {
      padding: 0.75rem 1.5rem;
      width: 100%;
    }
  </style>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
</body>

</html>

关于javascript - 如何修复覆盖内容的 Bootstrap 下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54660900/

相关文章:

javascript - 包含对象的数组,在对象内是未定义的

android - Android 和 Safari 浏览器中的 Flex Box

javascript - 在 AngularJS 中获取点击输入的位置

javascript - 捕获所有点击事件并丢弃不允许的

javascript - Highcharts 使用 dateTime 来生成图表

jquery - 在 html 页面中,文件 uploader 只接受 png

javascript - 谷歌地图 带有多个标记的多个 map

javascript - Chrome 扩展中的持久化 iFrame

javascript - 可调整大小的布局

javascript - javascript/jquery 中的正则表达式替换