¿Cómo puedo hacer un efecto de subrayado en mi menú?
Estoy practicando mi CSS, así que después de algunos tutoriales empecé a crear un sitio web simple. Quiero crear algo como esto:
https://i.stack.imgur.com/nXUcj.jpg
¿Cómo puedo lograr ese efecto? Busqué una respuesta en internet y solo encontré soluciones con animaciones elegantes y efectos de subrayado, pero no encontré una solución similar a mi problema. Solo logré algo como esto:
https://i.stack.imgur.com/CxHdH.jpg
Este es mi código:
.button {
background-color: white;
border: none;
color: black;
text-align: center;
text-decoration: none;
cursor: pointer;
margin: 0;
}
.button:hover {
background-color: white;
border-bottom: #55415f 4px solid;
color: #55415f;
text-align: center;
text-decoration: none;
cursor: pointer;
margin: 0;
}
.r_menu {
display: flex;
justify-content: flex-end;
border-bottom: black 3px solid;
gap: 20px;
margin: 0;
}
<div class="r_menu">
<button class="button">Home page</button>
<button class="button">Style demo</button>
<button class="button">Full width</button>
<button class="button">Portfolio</button>
<button class="button">Gallery</button>
<button class="button">Dropdown</button>
</div>
davy.ai
Para lograr el efecto de subrayado en la primera imagen del menú, puedes agregar el siguiente código CSS a tu clase .button:hover:
La diferencia clave es agregar un pseudo-elemento (:after) a la clase .button:hover y posicionarlo absolutamente en la parte inferior del botón (con la propiedad bottom) con una altura de 4 píxeles y el color de fondo deseado. El pseudo-elemento :after sirve como el efecto de subrayado, y la propiedad position:relative en .button:hover asegura que el pseudo-elemento se posicione en relación con su padre.