001. Header Clássico - Comp. Interago
Cabeçalho clássico - componente base para cabeçalhos horizontais
FIDDLE: https://jsfiddle.net/francisco_negrao/ve0cbyo9/22/
HTML:
<header id="js-header" style="transform: translateY(0px)">
<div class="container">
<div class="row">
<div class="col-12">
<div class="nav-bar">
<div class="logo">
<a href="" title="Ir para a Página Inicial" rel="nofollow">
<img
src="https://www.interago.com.br/App/Sites/40/mc/logotipos/logoEcoWebdesign.svg"
alt="Logo Website MODELO 2022"
class="img-fluid"
loading="lazy"
/>
</a>
</div>
<nav>
<input class="menu-btn" type="checkbox" id="menu-btn" />
<label onclick="overlayLeft()" class="menu-icon" for="menu-btn">
<span class="navicon"></span>
</label>
<div id="nav-list">
<input class="menu-close" type="checkbox" id="menu-close" />
<label
class="menu-close-btn"
for="menu-close"
onclick="menuToggle()"
>
Fechar Menu
</label>
<ul>
<li>
<a href="" title="Ir para a página inicial">Página Inicial</a>
</li>
<li>
<a
href="produtos"
title="Conhecer os produtos da NOME DA EMPRESA"
>Produtos</a
>
</li>
<li>
<a
href="galeria"
title="Portfólio com serviços da NOME DA EMPRESA"
>Galeria</a
>
</li>
<li>
<a
href="noticias"
title="Fique por dentro das novidades da NOME DA EMPRESA"
>Notícias</a
>
</li>
<li>
<a href="videos" title="Veja os vídeos da NOME DA EMPRESA"
>Vídeos</a
>
</li>
<li>
<a
href="contato"
title="Entre em contato com a NOME DA EMPRESA"
>Contato</a
>
</li>
</ul>
</div>
</nav>
</div>
<!--box-nav-->
</div>
<!--12-->
</div>
<!--row-->
</div>
<!--container-->
</header>
<div class="fixedCorrection">
</div>
CSS:
section {
height: 1500px;
background-color: black;
}
/* NAVBAR */
/* Estilo Barra de Navegação Responsiva */
header {
box-shadow: 0px 3px 12px rgb(0 0 0 / 10%);
background-color: #fff;
position: fixed;
width: 100%;
z-index: 999;
transition: 0.5s all;
}
header .nav-bar {
display: flex;
height: 100%;
position: relative;
min-height: 90px;
align-items: center;
}
header .nav-bar nav {
margin: auto 0px auto auto;
}
header .nav-bar ul {
padding: 0px;
margin: 0px;
list-style: none;
}
header .nav-bar ul > li {
display: inline-block;
margin: 0px 10px;
}
header .nav-bar li > a {
color: #041c27;
text-decoration: none;
transition: 0.3s ease;
padding: 5px 5px;
font-size: 14px;
font-weight: 600;
}
header .nav-bar li > a:hover {
color: #107cac;
}
header .nav-bar ul > li:last-child {
margin: 0px 0px 0px 6px;
}
header .btn-topbar {
background-color: #cd3537;
color: white;
padding: 5px 20px;
}
.logo img {
max-width: 160px;
display: block;
}
/* OVERLAY CSS */
#js-header.overlay--left:after {
content: "";
background-color: rgb(0 0 0 / 80%);
width: 100%;
height: 110vh;
display: block;
position: fixed;
pointer-events: unset;
z-index: 998;
top: -39px;
}
/* CORREÇÃO BARRA FIXA */
.fixedCorrection {
height: 90px;
}
/* ESTILOS MOBILE */
/* Criando Ícone Hamburger */
header .menu-icon {
cursor: pointer;
display: none;
float: right;
padding: 28px 3px;
position: relative;
user-select: none;
}
header .menu-icon .navicon {
background: #163d4f;
display: block;
height: 2px;
position: relative;
transition: background 0.2s ease-out;
width: 18px;
}
header .menu-icon .navicon:before,
header .menu-icon .navicon:after {
background: #163d4f;
content: "";
display: block;
height: 100%;
position: absolute;
transition: all 0.2s ease-out;
width: 100%;
}
header .menu-icon .navicon:before {
top: 5px;
}
header .menu-icon .navicon:after {
top: -5px;
}
/* Criando Animação Menu Hamburger */
header .menu-btn {
display: none;
}
header .menu-btn:checked ~ .menu-icon .navicon {
background: transparent;
}
header .menu-btn:checked ~ .menu-icon .navicon:before {
transform: rotate(-45deg);
}
header .menu-btn:checked ~ .menu-icon .navicon:after {
transform: rotate(45deg);
}
header .menu-btn:checked ~ .menu-icon:not(.steps) .navicon:before,
header .menu-btn:checked ~ .menu-icon:not(.steps) .navicon:after {
top: 0;
}
/* Criando botão fechar */
header .menu-close {
display: none;
}
header .menu-close-btn {
background-color: #eee;
color: #163d4f;
padding: 5px;
border-radius: 5px;
margin: 5px 15px 5px auto;
display: none;
width: 140px;
text-align: center;
cursor: pointer;
font-size: 12px;
font-weight: 600;
}
/* Manipulando lista para criar navbar slider */
@media (max-width: 992px) {
/* Aplicar estilo para tela menor do que qualquer tela grande (laptop ou desk) */
header .nav-bar #nav-list {
position: fixed;
top: 0;
left: 0;
width: 0vw;
height: 100vh;
z-index: 999;
overflow-x: hidden;
-webkit-transition: width 0.5s ease-in-out;
-moz-transition: width 0.5s ease-in-out;
-o-transition: width 0.5s ease-in-out;
transition: width 0.5s ease-in-out;
border-right: solid 1px #eee;
background-color: #f9f9f9;
box-shadow: 0px 0px 24px rgb(0 0 0 / 10%);
}
header .menu-btn:checked ~ #nav-list {
width: 70vw;
}
header .nav-bar ul > li {
display: block;
margin: 0px;
color: black;
}
header .nav-bar ul > li:last-child {
margin: 0px;
}
header .nav-bar ul > li a {
display: block;
padding: 15px;
border-bottom: solid 1px #ccc;
color: black;
}
header .nav-bar ul > li:first-of-type a {
border-top: solid 1px #ccc;
}
header .menu-close-btn {
display: block;
}
header .menu-icon {
display: block;
}
}
JavaScript:
// Script com função de checagem botão hamburger
function menuToggle() {
document.getElementById('menu-btn').checked = false;
document.getElementById("js-header").classList.remove('overlay--left');
}
// Script para criar Overlay ao abrir navbar
function overlayLeft() {
if (document.getElementById('menu-btn').checked) {
document.getElementById("js-header").classList.remove('overlay--left');
} else {
document.getElementById("js-header").classList.add('overlay--left');
}
}