En CSS, :hover es una pseudo-clase que define los estilos que se aplican cuando el cursor del mouse pasa sobre un elemento HTML.
Se utiliza para añadir interacción con el usuario, proporcionar retroalimentación visual y mejorar la experiencia de usuario (UX).
En el ejemplo siguiente, cuando el cursor del mouse pasa sobre el texto “Basic :hover Usage”, el color del enlace cambia.
a {
color: #333;
text-decoration: none;
}
a:hover {
color: #007bff;
text-decoration: underline;
}Vista previa
Basic :hover Usagebutton {
background-color: #ff5722;
color: white;
border: none;
padding: 10px 20px;
cursor: pointer;
transition: background-color 0.3s ease;
}
button:hover {
background-color: #1362eb;
}Al utilizar la propiedad transition en CSS, se puede ampliar la duración del cambio de color, creando un efecto de transición más suave.
<style>
.card {
padding: 20px;
border: 1px solid #ccc;
display: inline-block;
transition: background-color 0.3s ease;
}
.card-text {
color: #333;
transition: color 0.3s ease;
}
.card:hover .card-text {
color: #e91e63;
}
</style>
<div class="card">
<h3>Card Title</h3>
<p class="card-text">The color of this text will change on hover.</p>
</div>The color of this text will change on hover.
Con el selector .card:hover .card-text, solo el elemento .card-text dentro de la tarjeta se ve afectado cuando se pasa el cursor sobre la tarjeta. Este método puede usarse para el fondo, el tamaño, la opacidad y cualquier otro estilo.
<style>
.hover-test-menu {
list-style: none;
padding: 0;
margin: 0;
}
.hover-test-menu > li {
position: relative;
background: #3498db;
color: white;
padding: 10px;
cursor: pointer;
width: 150px;
}
/* The submenu is initially hidden. */
.hover-test-submenu {
display: none;
position: absolute;
top: 100%;
left: 0;
list-style: none;
padding: 0;
margin: 0;
background: #2980b9;
width: 150px;
}
.hover-test-submenu li {
padding: 10px;
color: white;
}
/* Show the submenu on hover. */
.hover-test-menu > li:hover .hover-test-submenu {
display: block;
}
</style>
<ul class="hover-test-menu">
<li>
Main Menu
<ul class="hover-test-submenu">
<li>Sub Menu 1</li>
<li>Sub Menu 2</li>
<li>Sub Menu 3</li>
</ul>
</li>
</ul>transition para suavizar los efectos.:hover no funciona en dispositivos móviles.