Menús desplegables CSS


Tabla de contenido

    Mostrar tabla de contenidos


Crea un menú desplegable flotante con CSS.


Demostración: ejemplos desplegables

Mueva el mouse sobre los ejemplos siguientes:


Menú desplegable básico

Cree un cuadro desplegable que aparezca cuando el usuario mueva el mouse sobre un elemento.

Ejemplo

<style>
.dropdown {
  position: relative;
  
display: inline-block;
}
.dropdown-content {
  display: 
none;
  position: absolute;
  
background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    padding: 
12px 16px;
  z-index: 1;
}
.dropdown:hover 
.dropdown-content {
  display: block;
}
</style>

<div class="dropdown">
  <span>Mouse over me</span>
  
<div class="dropdown-content">
    <p>Hello World!</p>
  </div>
</div>

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  padding: 12px 16px;
  z-index: 1;
}

.dropdown:hover .dropdown-content {
  display: block;
}
</style>
</head>
<body>

<h2>Hoverable Dropdown</h2>
<p>Move the mouse over the text below to open the dropdown content.</p>

<div class="dropdown">
  <span>Mouse over me</span>
  <div class="dropdown-content">
  <p>Hello World!</p>
  </div>
</div>

</body>
</html>


Ejemplo explicado

HTML) Utilice cualquier elemento para abrir el contenido desplegable, p. a <span> o un elemento <button>.

Utilice un elemento contenedor (como <div>) para crear el contenido desplegable y agregar lo que quieras dentro de él.

Envuelva un elemento <div> alrededor de los elementos para posicionar el contenido desplegable correctamente con CSS.

CSS) La clase .dropdown usa posición:relativa, que es necesaria cuando queremos el El contenido del menú desplegable se colocará justo debajo del botón desplegable (usando posición:absoluta).

La clase .dropdown-content contiene el contenido desplegable real. esta escondido por predeterminado y se mostrará al pasar el mouse (ver más abajo). Tenga en cuenta que el ancho mínimo está establecido en 160px. Siéntete libre de cambiar este. Consejo: Si desea que el ancho del contenido desplegable sea tan ancho como el botón desplegable, establezca el ancho en 100% (y overflow:auto en habilitar el desplazamiento en pantallas pequeñas).

En lugar de usar un borde, hemos usado la propiedad CSS box-shadow para hacer el El menú desplegable parece una "tarjeta".

El selector :hover se utiliza para mostrar el menú desplegable cuando el usuario mueve el Pase el mouse sobre el botón desplegable.



Menú desplegable

Cree un menú desplegable que permita al usuario elegir una opción de una lista:

Este ejemplo es similar al anterior, excepto que agregamos enlaces dentro del cuadro desplegable y les damos estilo para que se ajusten a un botón desplegable con estilo:

Ejemplo

<style>
/* Style The Dropdown Button */
.dropbtn {
  
background-color: #4CAF50;
  color: white;
  
padding: 16px;
  font-size: 16px;
  
border: none;
  cursor: pointer;
}
/* The 
container <div> - needed to position the dropdown content */
.dropdown {
    position: relative;
  display: 
inline-block;
}
/* Dropdown Content (Hidden by Default) */
.dropdown-content {
  display: none;
  position: 
absolute;
  background-color: #f9f9f9;
  
min-width: 160px;
  box-shadow: 
0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}
/* Links inside the dropdown */
.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
    
display: block;
}
/* Change color of dropdown links on hover */
.dropdown-content a:hover {background-color: #f1f1f1}
/* Show the 
dropdown menu on hover */
.dropdown:hover .dropdown-content {
  
display: block;
}
/* Change the background color of the dropdown 
button when the dropdown content is shown */
.dropdown:hover .dropbtn {
  background-color: #3e8e41;
}
</style>

<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  
<div class="dropdown-content">
    <a href="#">Link 
1</a>
    
<a href="#">Link 2</a>
    <a href="#">Link 3</a>
  </div>
</div>

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.dropbtn {
  background-color: #4CAF50;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown-content a:hover {background-color: #f1f1f1}

.dropdown:hover .dropdown-content {
  display: block;
}

.dropdown:hover .dropbtn {
  background-color: #3e8e41;
}
</style>
</head>
<body>

<h2>Dropdown Menu</h2>
<p>Move the mouse over the button to open the dropdown menu.</p>

<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
  <a href="#">Link 1</a>
  <a href="#">Link 2</a>
  <a href="#">Link 3</a>
  </div>
</div>

<p><strong>Note:</strong> We use href="#" for test links. In a real web site this would be URLs.</p>

</body>
</html>



Contenido desplegable alineado a la derecha

Si desea que el menú desplegable vaya de derecha a izquierda, en lugar de de izquierda a derecha, agregue right: 0;

Ejemplo

.dropdown-content {
  right: 0;
}

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.dropbtn {
  background-color: #4CAF50;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  right: 0;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown-content a:hover {background-color: #f1f1f1;}

.dropdown:hover .dropdown-content {
  display: block;
}

.dropdown:hover .dropbtn {
  background-color: #3e8e41;
}
</style>
</head>
<body>

<h2>Aligned Dropdown Content</h2>
<p>Determine whether the dropdown content should go from left to right or right to left with the left and right properties.</p>

<div class="dropdown" style="float:left;">
  <button class="dropbtn">Left</button>
  <div class="dropdown-content" style="left:0;">
  <a href="#">Link 1</a>
  <a href="#">Link 2</a>
  <a href="#">Link 3</a>
  </div>
</div>

<div class="dropdown" style="float:right;">
  <button class="dropbtn">Right</button>
  <div class="dropdown-content">
  <a href="#">Link 1</a>
  <a href="#">Link 2</a>
  <a href="#">Link 3</a>
  </div>
</div>

</body>
</html>



Más ejemplos

Imagen desplegable

Cómo agregar una imagen y otro contenido dentro del cuadro desplegable.

Pase el cursor sobre la imagen:


Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

.dropdown:hover .dropdown-content {
  display: block;
}

.desc {
  padding: 15px;
  text-align: center;
}
</style>
</head>
<body>

<h2>Dropdown Image</h2>
<p>Move the mouse over the image below to open the dropdown content.</p>

<div class="dropdown">
  <img src="img_5terre.jpg" alt="Cinque Terre" width="100" height="50">
  <div class="dropdown-content">
  <img src="img_5terre.jpg" alt="Cinque Terre" width="300" height="200">
  <div class="desc">Beautiful Cinque Terre</div>
  </div>
</div>

</body>
</html>


Barra de navegación desplegable

Cómo agregar un menú desplegable dentro de una barra de navegación.


Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #333;
}

li {
  float: left;
}

li a, .dropbtn {
  display: inline-block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

li a:hover, .dropdown:hover .dropbtn {
  background-color: red;
}

li.dropdown {
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  text-align: left;
}

.dropdown-content a:hover {background-color: #f1f1f1;}

.dropdown:hover .dropdown-content {
  display: block;
}
</style>
</head>
<body>

<ul>
  <li><a href="#home">Home</a></li>
  <li><a href="#news">News</a></li>
  <li class="dropdown">
    <a href="javascript:void(0)" class="dropbtn">Dropdown</a>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </li>
</ul>

<h3>Dropdown Menu inside a Navigation Bar</h3>
<p>Hover over the "Dropdown" link to see the dropdown menu.</p>

</body>
</html>