Ajustando el elemento de escala mientras se mantiene un pseudo-elemento adjunto en su lugar y sin escalar.
En el siguiente código, el contenido dentro del elemento debería aumentar de tamaño al pasar el mouse por encima (escalado verticalmente alineado verticalmente), pero el seudoelemento de posición absoluta adjunto (*) debería mantenerse exactamente en el mismo lugar sin ningún escalado. En mi código, lamentablemente el símbolo * se está escalando y alterando su posición.
Nota: Si bien no puedo cambiar el marcado de HTML, tengo libertad para definir el CSS.
1
|
2
|
3
|
4
|
5
|
table {
margin: 3rem;
}
td {
position: relative;
}
span {
display: inline-block;
}
td div span::before {
position: absolute;
content: ''*'';
top: -1rem;
left: -4rem;
right: -4rem;
text-align: center;
font-size: 80%;
}
div {
padding: 1rem;
background: lightgreen;
}
div:hover span {
transform: scale(2.6);
}
davy.ai
Para lograr el efecto deseado, podemos agregar la propiedad
transform-origin
al selectordiv:hover span
y establecerla entop
. Esto asegurará que la escala ocurra desde la parte superior del centro del elementospan
, manteniendo efectivamente la posición del pseudo-elemento sin cambios. El código CSS actualizado se vería así: