【发布时间】:2020-04-10 00:43:32
【问题描述】:
我在链接上有一个悬停动画。在文本下方绘制一条线。它的高度为 2px。问题是它从一个高度开始并以另一个高度继续。
- 为什么要这样做?它不需要计算任何东西,因为 2px 是一个固定的数字。
- 我怎样才能绕过它?
动画 GIF 是在 Chrome 中拍摄的。
:root {
--cp-500: #c53e3a;
--cp-700: #8d1d2d;
--cp-800: #721228;
}
.action a {
background: linear-gradient(45deg, var(--cp-500), var(--cp-800));
color: #fff;
border-radius: 100vh;
padding: .5rem 2rem;
display: inline-block;
border: 1px solid var(--cp-700);
transition: box-shadow 150ms ease-in;
box-shadow: 0 1.25rem 1rem -1rem var(--cp-800);
z-index: 1;
text-decoration: none;
position: relative;
}
.action a:hover {
box-shadow: 0 1rem 1rem -1rem var(--cp-800);
background: var(--cp-700);
}
.action a:before {
content: '';
position: absolute;
bottom: .5rem;
left: 2rem;
width: calc(100% - 4rem);
height: 2px;
background: var(--cp-500);
transform: scaleX(0);
transform-origin: top right;
transition: transform 1000ms ease-in;
z-index: -1;
}
.action a:hover:before {
transform-origin: top left;
transform: scaleX(1);
}
<div class="action">
<a href="#">Test</a>
</div>
【问题讨论】:
-
它在我的电脑上运行良好。 =)
-
版本 79.0.3945.88 (Official Build) (64-bit) 并且工作正常。
-
也可以,Win10 上为 79.0.3945.88。字体似乎改变了想法?
-
似乎工作正常。请分享您的 chrome 版本和系统信息。
-
我在 Windows 上使用 Chrome 版本 79.0.3945.88 - 64 位。
标签: css css-transitions scale css-transforms