overflow:hidden on ul , which is used to clean li floats, can be replaced with the following:
.navbar > .main-nav > ul:after { display: block; clear: both; content: ''; }
like overflow: hidden prevents overlapping borders.
Now add a negative margin to li.active and adjust the border width to get the desired effect.
I also wanted the hover to go above the green border, which is in the picture.
To do this, change .navbar > .main-nav > ul > li:after and .navbar > .main-nav > ul > li:hover:after to the previous psuedo element and add margin-top .
See the demo below:
html, body { margin: 0; } .navbar { background-color: #ecf0f1; } .navbar > .main-nav > ul, li { list-style-type: none; text-decoration: none; } .navbar > .main-nav > ul { min-height: 60px; margin: 0; padding: 0; box-sizing: border-box; border-top: 8px solid #d1d064; } .navbar > .main-nav > ul:after { display: block; clear: both; content: ''; } .navbar > .main-nav > ul > li { text-align: center; min-width: 150px; position: relative; top: -2px; display: block; float: left; } .navbar > .main-nav > ul > li a { display: block; color: #737373; text-align: center; padding: 20px 16px; text-decoration: none; font-family: 'Lato', sans-serif; font-weight: 800; } .navbar > .main-nav > ul > li.active { border-top: 8px solid #0F9E5E; margin-top: -6px; } .navbar > .main-nav > ul > li:before { display: block; content: ''; border-top: solid 3px #a8a8b6; transform: scaleX(0); transition: transform 250ms ease-in-out; margin-top: -9px; } .navbar > .main-nav > ul > li:hover:before { transform: scaleX(1); } .navbar > .main-nav { max-width: 1480px; margin: 0 auto; }
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet"> <link href="https://cdnjs.cloudflare.com/ajax/libs/hover.css/2.1.0/css/hover-min.css" rel="stylesheet"> </head> <body> <br> <br> <br> <br> <br> <br> <nav class="navbar"> <div class="main-nav"> <ul> <li class="active"><a href="#">Home</a> </li> <li><a href="#">Second</a> </li> <li><a href="#">Third</a> </li> </ul> </div> </nav> </body>
source share