简体   繁体   中英

bootstrap 4 dropdown menu over div below

Im trying to get the bootstrap 4 responsive top nav to appear over my container div with no luck, and I cant seem to find a solution for it.

Here is how the Top nav is supposes to work
W3Schools editor

and here is my jsfiddle of the code
jsfiddle

 function myFunction() { var x = document.getElementById("myTopnav"); if (x.className === "topnav") { x.className += " responsive"; } else { x.className = "topnav"; } } 
  /* Add a black background color to the top navigation */ .topnav { background-color: #333; overflow: hidden; } /* Style the links inside the navigation bar */ .topnav a { float: left; display: block; color: #f2f2f2; text-align: center; padding: 14px 16px; text-decoration: none; font-size: 17px; } /* Add an active class to highlight the current page */ .active { background-color: #4CAF50; color: white; } /* Hide the link that should open and close the topnav on small screens */ .topnav .icon { display: none; } /* Dropdown container - needed to position the dropdown content */ .dropdown { float: left; overflow: visible; } /* Style the dropdown button to fit inside the topnav */ .dropdown .dropbtn { font-size: 17px; border: none; outline: none; color: white; padding: 14px 16px; background-color: inherit; font-family: inherit; margin: 0; } /* Style the dropdown content (hidden by default) */ .dropdown-content { display: none; position: relative; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); z-index: 2; } /* Style the links inside the dropdown */ .dropdown-content a { float: none; color: black; padding: 12px 16px; text-decoration: none; display: block; text-align: left; } /* Add a dark background on topnav links and the dropdown button on hover */ .topnav a:hover, .dropdown:hover .dropbtn { background-color: #555; color: white; } /* Add a grey background to dropdown links on hover */ .dropdown-content a:hover { background-color: #ddd; color: black; } /* Show the dropdown menu when the user moves the mouse over the dropdown button */ .dropdown:hover .dropdown-content { display: block; } /* When the screen is less than 600 pixels wide, hide all links, except for the first one ("Home"). Show the link that contains should open and close the topnav (.icon) */ @media screen and (max-width: 600px) { .topnav a:not(:first-child), .dropdown .dropbtn { display: none; } .topnav a.icon { float: right; display: block; } } /* The "responsive" class is added to the topnav with JavaScript when the user clicks on the icon. This class makes the topnav look good on small screens (display the links vertically instead of horizontally) */ @media screen and (max-width: 600px) { .topnav.responsive { position: relative; } .topnav.responsive a.icon { position: absolute; right: 0; top: 0; } .topnav.responsive a { float: none; display: block; text-align: left; } .topnav.responsive .dropdown { float: none; } .topnav.responsive .dropdown-content { position: relative; } .topnav.responsive .dropdown .dropbtn { display: block; width: 100%; text-align: left; } } 
 <button class="dropbtn">Equipment <i class="fa fa-caret-down"></i> </button> <div class="dropdown-content"> <a href="equip.php">Manage equipment</a> <a href="add_equip.php">Add equipment</a> </div> </div> <div class="dropdown"> <button class="dropbtn">Stock <i class="fa fa-caret-down"></i> </button> <div class="dropdown-content"> <a href="Stock.php">Manage stock</a> <a href="add_stock.php">Add stock</a> </div> </div> <div class="dropdown"> <button class="dropbtn">Reports <i class="fa fa-caret-down"></i> </button> <div class="dropdown-content"> <a href="#">Report 1 </a> <a href="#">Report 1 </a> <a href="#">Report 1 </a> </div> </div> <a href="javascript:void(0);" class="icon" onclick="myFunction()">&#9776;</a> </div> <div class="container-fluid"> <div class="row"> <div class="col-md-6"> <?php echo display_msg($msg); ?> </div> </div> <div class="row"> <div class="col-md-3"> <div class="panel panel-box clearfix"> <div class="panel-icon bg-green"> <i class="glyphicon glyphicon-user"></i> </div> <div class="panel-value pull-right"> <h2 class="margin-top"> <?php echo $c_contractors['total']; ?> </h2> <p class="text-muted">Contractors</p> </div> </div> </div> <div class="col-md-3"> <div class="panel panel-box clearfix"> <div class="panel-icon pull-left bg-red"> <i class="glyphicon glyphicon-list"></i> </div> <div class="panel-value pull-right"> <h2 class="margin-top"> <?php echo $c_jobs_active['total']; ?> </h2> <p class="text-muted">Active Jobs</p> </div> </div> </div> <div class="col-md-3"> <div class="panel panel-box clearfix"> <div class="panel-icon pull-left bg-blue"> <i class="glyphicon glyphicon-list"></i> </div> <div class="panel-value pull-right"> <h2 class="margin-top"> <?php echo $c_jobs_pending['total']; ?> </h2> <p class="text-muted">Pending jobs</p> </div> </div> </div> <div class="col-md-3"> <div class="panel panel-box clearfix"> <div class="panel-icon pull-left bg-yellow"> <i class="glyphicon glyphicon-list"></i> </div> <div class="panel-value pull-right"> <h2 class="margin-top"> <?php echo $c_jobs_completed['total']; ?> </h2> <p class="text-muted">Completed Jobs YTD</p> </div> </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="panel"> <div class="jumbotron text-center"> <h1>Any problems let me know.</h1> </div> </div> </div> </div> </div> 

I am sure it is something simple that I have over looked
Cheers,

Firstly, change the .topnav class to:

.topnav {
    float:left;
    width:100%;
    position:relative;
    background-color: #333;
}

Then remove the overflow from .dropdown class. Finally, change position: relative to position: absolute in the .dropdown-content class.

Don't forget to add a clear: both style before the container-fluid.

Here's the Fiddle .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM