A mobile first flexbox navigation menu with a responsive design that works seamlessly with a mobile drop down menu.
Created
January 9, 2022 02:35
-
-
Save neisdev/db2d81303e75ffc73d2b8e7247f04b97 to your computer and use it in GitHub Desktop.
Mobile Friendly HTML 5 and CSS 3 Responsive Fixed Navigation Menu
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <header> | |
| <div id="logo" class="menuUp"> | |
| <h1>Adam Bray.</h1> | |
| <div id="navToggle"><a href="#">Menu</a></div> | |
| </div> | |
| <nav> | |
| <ul> | |
| <li><a href="#">Home</a></li> | |
| <li><a href="#">About</a></li> | |
| <li> | |
| <a href="#">Blog <span class="toggle">Expand</span><span class="caret"></span></a> | |
| <nav> | |
| <ul> | |
| <li><a href="#">Articles</a></li> | |
| <li><a href="#">Tutorials</a></li> | |
| <li><a href="#">Humour</a></li> | |
| <li><a href="#">Gaming</a></li> | |
| <li><a href="#">Music</a></li> | |
| </ul> | |
| </nav> | |
| </li> | |
| <li><a href="#">Forum</a></li> | |
| <li><a href="#">Help</a></li> | |
| </ul> | |
| </nav> | |
| </header> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| $(document).ready(function() { | |
| $("#navToggle a").click(function(e){ | |
| e.preventDefault(); | |
| $("header > nav").slideToggle("medium"); | |
| $("#logo").toggleClass("menuUp menuDown"); | |
| }); | |
| $(window).resize(function() { | |
| if($( window ).width() >= "600") { | |
| $("header > nav").css("display", "block"); | |
| if($("#logo").attr('class') == "menuDown") { | |
| $("#logo").toggleClass("menuUp menuDown"); | |
| } | |
| } | |
| else { | |
| $("header > nav").css("display", "none"); | |
| } | |
| }); | |
| $("header > nav > ul > li > a").click(function(e) { | |
| if($( window ).width() <= "600") { | |
| if($(this).siblings().size() > 0 ) { | |
| $(this).siblings().slideToggle("fast") | |
| $(this).children(".toggle").html($(this).children(".toggle").html() == 'close' ? 'expand' : 'close'); | |
| } | |
| } | |
| }); | |
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| * { | |
| margin: 0; | |
| padding: 0; | |
| outline: none; | |
| box-sizing: border-box; | |
| } | |
| body { | |
| background: #eee; | |
| color: #444; | |
| -webkit-font-smoothing: antialiased; | |
| font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; | |
| font-weight: 300; | |
| font-weight: 400; | |
| height: auto !important; | |
| height: 100%; | |
| min-height: 100%; | |
| text-rendering: optimizeLegibility; | |
| } | |
| header { | |
| background-color: rgb(140, 193, 193); | |
| border-bottom: 1px solid rgba(0,0,0,.15); | |
| display: flex; | |
| flex-direction: column; | |
| text-align: center; | |
| } | |
| header > div#logo { | |
| line-height: 70px; | |
| position: relative; | |
| } | |
| header > .menuDown { | |
| box-shadow: 0 3px 5px rgba(0,0,0,.15); | |
| } | |
| header > .menuUp { | |
| box-shadow: none; | |
| } | |
| header > div#logo > h1 { | |
| color: white; | |
| font-weight: 300; | |
| text-transform: lowercase; | |
| } | |
| header > div#logo > div#navToggle { | |
| background-color: rgba(0,0,0,.15); | |
| position: absolute; | |
| right: 0; | |
| top: 0; | |
| transition: 300ms all ease; | |
| } | |
| header > div#logo > div#navToggle:hover { | |
| background-color: rgba(0,0,0,.1); | |
| } | |
| header > div#logo > div#navToggle > a { | |
| color: rgba(255,255,255,.85); | |
| display: block; | |
| font-size: 0.85em; | |
| font-weight: 600; | |
| padding: 0 2.5rem; | |
| text-decoration: none; | |
| transition: 300ms all ease; | |
| } | |
| header > div#logo > div#navToggle:hover > a { | |
| color: rgba(255,255,255,1); | |
| } | |
| header > nav { | |
| background-color: white; | |
| display: none; | |
| flex: 1; | |
| transform: 300ms all ease; | |
| } | |
| header nav > ul { | |
| list-style-type: none; | |
| } | |
| header nav > ul > li { | |
| border-bottom: 1px dotted rgba(0,0,0,.1); | |
| position: relative; | |
| } | |
| header nav > ul > li:last-of-type { | |
| border-bottom: none; | |
| } | |
| header nav > ul > li > a { | |
| display: block; | |
| color: rgba(0,0,0,.65); | |
| font-weight: 700; | |
| padding: 1.5rem 0; | |
| text-decoration: none; | |
| transition: 250ms all ease; | |
| } | |
| header nav > ul > li > a span.toggle { | |
| background-color: rgba(0,0,0,.05); | |
| border-radius: 3rem; | |
| color: rgba(0,0,0,.25); | |
| font-size: 0.75em; | |
| font-weight: 500; | |
| padding: 2px 8px; | |
| text-transform: lowercase; | |
| } | |
| header nav > ul > li > a span.caret { | |
| display: none; | |
| } | |
| header > nav > ul > li:hover > a { | |
| color: rgb(140, 193, 193); | |
| } | |
| header > nav > ul > li > nav { | |
| background-color: rgb(51,51,51); | |
| border-radius: 1.5em; | |
| box-shadow: 0 2px 8px rgba(0,0,0,.6); | |
| display: none; | |
| overflow: hidden; | |
| position: absolute; | |
| right: 5%; | |
| width: 90%; | |
| z-index: 100; | |
| } | |
| header > nav > ul > li > nav > ul > li > a { | |
| color: rgba(255,255,255,.85); | |
| transition: 300ms all ease; | |
| } | |
| header > nav > ul > li > nav > ul > li:hover > a { | |
| background-color: rgba(0,0,0,.6); | |
| color: rgba(255,255,255,1); | |
| } | |
| /* Medium screens */ | |
| @media all and (min-width: 600px) { | |
| header > div#logo > div#navToggle { | |
| display: none; | |
| } | |
| header { | |
| background-color: white; | |
| flex-direction: row; | |
| line-height: 90px; | |
| padding: 0 3rem; | |
| position: fixed; | |
| text-align: left; | |
| width: 100%; | |
| } | |
| header > div#logo { | |
| background-color: transparent; | |
| line-height: 90px; | |
| } | |
| header > div#logo > h1 { | |
| color: rgb(140, 193, 193); | |
| } | |
| header > nav { | |
| background-color: transparent; | |
| display: block; | |
| } | |
| header > nav > ul { | |
| display: flex; | |
| flex-flow: row wrap; | |
| justify-content: flex-end; | |
| } | |
| header nav > ul > li { | |
| border-bottom: none; | |
| } | |
| header nav > ul > li > a { | |
| padding: 0 1.25rem; | |
| } | |
| header nav > ul > li > a span.toggle { | |
| display: none; | |
| } | |
| header nav > ul > li > a span.caret { | |
| border-bottom: 4px solid transparent; | |
| border-top: 4px solid rgba(0,0,0,.65); | |
| border-right: 4px solid transparent; | |
| border-left: 4px solid transparent; | |
| border-radius: 1px; | |
| content: ""; | |
| display: inline-block; | |
| height: 0; | |
| margin: 0 0 0 .25rem; | |
| transition: 250ms all ease; | |
| width: 0; | |
| vertical-align: middle; | |
| } | |
| header nav > ul > li:hover > a span.caret { | |
| border-top-color: rgb(140, 193, 193); | |
| transform: rotate(270deg); | |
| } | |
| header > nav > ul > li:hover > nav { | |
| background-color: rgb(51,51,51); | |
| border-radius: .25em; | |
| box-shadow: 0 2px 8px rgba(0,0,0,.6); | |
| display: block; | |
| line-height: 3em; | |
| right: -50%; | |
| width: 196px; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment