Código HTML
Se construye un menú con los diversos elementos de HTML como "nav", "ul" y "li".
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Jhon Paul">
<title>Menú</title>
<!-- CSS -->
<link rel="stylesheet" href="menu.css">
<!-- JS -->
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js">
</script>
<script src="menu.js"></script>
</head>
<body style="font-family: calibri, arial;">
<div class="menu">
<div class="menu_bar">
<a href="#" style="color: white;">Menu</a>
</div>
<nav class="menu" style="margin: 0 auto;" >
<ul>
<li class="menu"><a href="#">Menu 01</a>
</li><li class="menu">
<a href="#">Menu 02</a>
<ul class="submenu">
<li><a href="#">Submenu 02.01</a></li>
<li><a href="#">Submenu 02.02</a></li>
<li><a href="#">Submenu 02.03</a></li>
</ul>
</li><li class="menu">
<a href="#">Menu 03</a>
<ul class="submenu">
<li><a href="#">Submenu 03.01</a></li>
<li><a href="#">Submenu 03.02</a></li>
</ul>
</li><li class="menu">
<a href="#">Menu 04</a>
<ul class="submenu">
<li><a href="#">Submenu 04.01</a></li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
Código CSS
Se añade reglas AT para controlar los redimensionamientos de la pantalla
a{text-decoration: none;}
- @media only screen and (min-width: 1px){
- .menu_bar {
- display:block;
- text-align: right;
- }
- .menu_bar a {
- background:#000000;
- padding: 0.7rem;
- }
- nav.menu {
- width: 100%;
- }
- nav.menu ul li {
- display: block;
- border-bottom:1px solid white;
- }
- nav.menu ul li a {
- display: block;
- font-size: 1rem;
- position: relative;
- color: white;
- box-sizing: border-box;
- background:black;
- padding: 0.5rem 0;
- }
- .submenu {
- display: none;
- }
- nav.menu ul {
- list-style: none;
- padding: 0;
- text-align: center;
- }
- }
- @media only screen and (min-width: 460px){
- nav.menu ul li a {
- font-size: 1.2rem;
- padding: 0.8rem 0;
- }
- }
- @media only screen and (min-width: 768px){
- .menu_bar {
- display:none;
- }
- nav.menu{
- display: initial;
- }
- nav.menu ul li:hover .submenu {
- display:block;
- }
- nav.menu {
- display: block;
- margin: 0;
- padding: 0;
- list-style: none;
- }
- nav.menu ul {
- list-style: none;
- margin: 0;
- padding: 0;
- }
- nav.menu > ul > li {
- float: left;
- }
- nav.menu ul li a {
- display: block;
- margin: 0;
- padding: 15px 20px;
- color: #FFFFFF;
- background-color: #333333;
- }
- nav.menu > ul > li > ul {
- display: none;
- }
- nav.menu > ul > li:hover > ul {
- list-style: none;
- display: block;
- position: absolute;
- }
- nav.menu a:hover {
- background-color: #C80000;
- }
- }
Código JS
Finalmente, código JS para controlar el despliegue del menú en pantallas pequeñas.
$(document).ready(function () {
- $('.menu_bar').click(function () {
- $('nav.menu').slideToggle();
- });
- $(window).resize(function () {
- if (eval($('body').width()) > 750) {
- $('nav.menu').show();
- }else{
- $('nav.menu').hide();
- }
- });
- });
No hay comentarios:
Publicar un comentario