html - 在链接上使用 CSS 转换时不稳定

标签 html css css-transforms

我有一个页脚导航。导航是一个无序列表,有六个列表项,每个列表项都有一个 anchor 或链接标记。

现在我的问题是,当我将鼠标悬停在基本上是链接的列表项上时(在 Y 轴上翻译 -3px --> 根据 CSS 代码)但是当它返回到链接或正常状态时链接文本上下移动。

是什么导致了这种异常行为?

我对 CSS 和 HTML 很熟悉。

我在某处读到过 (backface visibility: hidden;) 但不知道如何使用它以及在哪里使用它可以以某种方式解决这个问题但是正如我之前所说的我开始使用 CSS 所以有点困惑它是如何工作的.

enter image description here

.nav {
  list-style: none;
  padding: 4rem;
  background-color: #101d2c;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  grid-gap: 2rem;
  align-items: center;
}

.nav__link:link,
.nav__link:visited {
  text-decoration: none;
  font-size: 1.4rem;
  font-family: 'Josefin Sans', sans-serif;
  color: #fff;
  text-transform: uppercase;
  text-align: center;
  padding: 1.5rem;
  display: block;
  transition: all .2s;
}

.nav__link:active,
.nav__link:hover {
  background-color: rgba(#fff, .05);
  transform: translateY(-3px);
}
<ul class="nav">
  <li class="nav__item"><a href="#" class="nav__link">Find your dream home</a></li>
  <li class="nav__item"><a href="#" class="nav__link">Request proposal</a></li>
  <li class="nav__item"><a href="#" class="nav__link">Download home planner</a></li>
  <li class="nav__item"><a href="#" class="nav__link">Contact us</a></li>
  <li class="nav__item"><a href="#" class="nav__link">Submit your property</a></li>
  <li class="nav__item"><a href="#" class="nav__link">Come work with us!</a></li>
</ul>

最佳答案

我无法向您解释为什么 CSS 转换不流畅,但这是一个常见问题,我发现自己每天都在整个网络上注意到这一点。 CSS 有许多奇怪的错误和缺陷,目前这就是其中之一。

这里有一个解决您的问题的方法,这样您至少可以在没有不稳定文本的情况下实现您想要的:

删除 css 转换并添加负上边距:

.nav__link:active,
.nav__link:hover {
  background-color: rgba(#fff, .05);
  transform: translateY(-3px); <-- remove this line
  margin-top: -6px; <-- add this line
}

我使用了 6px 的负上边距(-6px),因为这看起来与使用 3px 的 css transform translate 非常相似。

https://codepen.io/anon/pen/yZweLp?editors=1100#0

关于html - 在链接上使用 CSS 转换时不稳定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54768653/

相关文章:

javascript - 如何在 Bootstrap 中更改面板的折叠方向

jquery - 放大/缩小时如何保持图像和按钮之间的比例

javascript - Recaptcha 导致部分页面加载

html - CSS 变换效果适用于除 Safari 以外的所有浏览器

javascript - 在子容器上使用 CSS 转换时,如何在父容器上手动设置溢出大小?

javascript - 我可以为 html 文本字段形式的元素提供相同的名称和 ID 吗?

css - gulp-sass 修改生成的文件名 (style.css)

javascript - 之前的 HTML5 输入范围样式

javascript - 到达最后一部分时如何隐藏 div 元素?

html - 如何使用 css transform-origin 显示一圈扑克牌(矩形)?