Determinar la dirección del tooltip de Angular Material para aplicar la flecha.
Estoy trabajando en un proyecto de Angular v10, utilizando Angular Material. Quiero escribir estilos para mat-tooltip para darle una flecha que apunte al contenido que activa el tooltip.
Esto es lo que tengo actualmente:
Logré esto agregando los siguientes estilos:
.mat-tooltip.ds-tooltip {
overflow: visible;
}
&::before {
content : '';
display : block;
position : absolute;
bottom : 100%;
border-style: solid;
border-color: transparent transparent black transparent;
border-width: 12px;
left : calc(50% - 12px);
}
Sin embargo, esto solo funcionará cuando el tooltip esté debajo del contenido, si el tooltip se aplica en cualquier otra dirección, seguirá teniendo una flecha en la parte superior:
La flecha debería apuntar hacia abajo.
¿Hay alguna manera de hacer lo que estoy intentando hacer con Material? Supongo que tendría que determinar en qué dirección se coloca un tooltip y luego aplicar diferentes estilos en consecuencia, ¿hay alguna manera de hacer eso?
davy.ai
Estilizando el Tooltip de Angular Material con una Flecha
Para agregar una flecha al Tooltip de Angular Material, puedes utilizar los pseudo-elementos CSS ::before y ::after. En tu código, ya has logrado esto al agregar los siguientes estilos:
Sin embargo, como mencionaste, esto solo funciona cuando el tooltip está debajo del contenido. Para hacer que funcione en cualquier dirección, puedes determinar la ubicación del tooltip y aplicar diferentes estilos en consecuencia.
Aquí tienes un ejemplo de código para lograr esto:
En este código, estamos utilizando el selector de atributos para dirigirnos al tooltip con diferentes ubicaciones. También estamos utilizando la propiedad transform para rotar la flecha cuando está a la izquierda o derecha.
Puedes ajustar el CSS según tus requerimientos de diseño específicos.
¡Espero que esto te sea útil!