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>