Topnav Responsive
Vamos a crear una barra de navegación que se adapte a todo tipo de dispositivos, la sintaxis que vamos a utilizar es la siguiente:
<!DOCTYPE html> <html lang="es"> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <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: block; color: white; text-align: center; padding: 14px 16px; text-decoration: none; } ul.topnav li a:hover:not(.active) { background-color: #111; } ul.topnav li a.active { background-color: #04aa6d; } ul.topnav li.right { float: right; } @media screen and (max-width: 600px) { ul.topnavli.right, ul.topnavli {float: none;} } </style> </head> <body> <ul class="topnav"> <li><a href="#" class="active">Home</a></li> <li><a href="#">Quienes somos</a></li> <li><a href="#">Donde estamos</a></li> <li class="right"><a href="#">Contacto</a></li> </ul> <div style="margin: 20px;"> <h2>Menú horizontal Responsive</h2> <p>Este es un ejm de menú horizontal Responsive</p> </div> </body> </html>
Sidenav Responsive
Ahora vamos a dejar una sintaxis cuando el menú está en el lateral, dependiendo del dispositivo lo veremos o bien en el lateral o bien arriba de la página.
El código es el siguiente:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> body {margin: 0;} ul.sidenav { list-style-type: none; margin: 0; padding: 0; width: 25%; background-color: #f1f1f1; position: fixed; height: 100%; overflow: auto; } ul.sidenav li a { display: block; color: #000; padding: 8px 16px; text-decoration: none; } ul.sidenav li a.active { background-color: #4CAF50; color: white; } ul.sidenav li a:hover:not(.active) { background-color: #555; color: white; } div.content { margin-left: 25%; padding: 1px 16px; height: 1000px; } @media screen and (max-width: 900px) { ul.sidenav { width: 100%; height: auto; position: relative; } ul.sidenav li a { float: left; padding: 15px; } div.content {margin-left: 0;} } @media screen and (max-width: 400px) { ul.sidenav li a { text-align: center; float: none; } } </style> </head> <body> <ul class="sidenav"> <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> </ul> <div class="content"> <h2>Responsive Sidenav Example</h2> <p>This example use media queries to transform the sidenav to a top navigation bar when the screen size is 900px or less.</p> <p>We have also added a media query for screens that are 400px or less, which will vertically stack and center the navigation links.</p> <p>You will learn more about media queries and responsive web design later in our CSS Tutorial.</p> <h3>Resize the browser window to see the effect.</h3> </div> </body> </html>