I've found loads of assistance online with floating navs and responsive navs.. but i'd like to combine them and also leave the option of drop down sub menus in both responsive layouts
does anyone have any experience of this?
this is what I have so far - this gives a responsive layout - here is a fiddle - (NB: in this fiddle the responsive hamburger doesn't work - but it does) https://jsfiddle.net/fa6xj2z1/
Question: there are a) no drop down menus and b) no floating top nav. Can anyone help me add drop down menu items and floating nav to this?
Here is the code
<!DOCTYPE html>
<html>
<head>
<style>
body {margin:0;}
ul.topnav {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
ul.topnav li {float: left;}
ul.topnav li a {
display: inline-block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
transition: 0.3s;
font-size: 17px;
}
ul.topnav li a:hover {background-color: #555;}
ul.topnav li.icon {display: none;}
@media screen and (max-width:680px) {
ul.topnav li:not(:first-child) {display: none;}
ul.topnav li.icon {
float: right;
display: inline-block;
}
}
@media screen and (max-width:680px) {
ul.topnav.responsive {
position: relative;
}
ul.topnav.responsive li.icon {
position: absolute;
right: 0;
top: 0;
}
ul.topnav.responsive li {
float: none;
display: inline;
}
ul.topnav.responsive li a {
display: block;
text-align: left;
}
}
</style>
</head>
<body>
<ul class="topnav" id="myTopnav">
<li><a class="active" href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
<li class="icon">
<a href="javascript:void(0);" style="font-size:15px;" onclick="myFunction()">☰</a>
</li>
</ul>
<div style="padding-left:16px">
<h2>Responsive Topnav Example</h2>
<p>Resize the browser window to see how it works.</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum.
</p>
<p>
Nulla efficitur pharetra leo. In convallis lobortis
nisl, ut pretium purus aliquam eget. Maecenas
vestibulum venenatis eros, a volutpat mi malesuada eu.
Cum sociis natoque penatibus et magnis dis parturient
montes, nascetur ridiculus mus. Nam mollis vitae eros
quis congue. Ut eget massa semper, cursus ligula et,
euismod lacus. Sed neque metus, tristique eget
scelerisque vitae, luctus at metus. Proin vel
ullamcorper arcu. Praesent dapibus eleifend turpis et
euismod. Sed tincidunt lobortis erat, nec elementum
libero molestie sed. Phasellus eget tristique lorem.
</p>
<p>
Maecenas dictum molestie nisi, eu ornare mauris posuere
a. Proin tempus est ligula, ut varius risus faucibus
nec. Morbi ultrices leo et vulputate facilisis. Nunc
congue, leo a facilisis dictum, metus neque tempus
arcu, ac aliquet nulla mi a felis. Maecenas quis
euismod velit. Curabitur dapibus ipsum vitae
ullamcorper auctor. Nullam nec ultricies urna.
Curabitur lacinia nec ipsum a condimentum. Quisque
lacinia faucibus augue, sed efficitur enim mollis eget.
In et metus non ante interdum varius nec in sem.
</p>
</div>
<script>
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
</script>
</body>
</html>