首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我在CSS中使用鼠标悬停元素来翻译{transform: translateX(20px)}导航栏链接到左边时,整个网页左右摇晃

问当我在CSS中使用鼠标悬停元素来翻译{transform: translateX(20px)}导航栏链接到左边时,整个网页左右摇晃
EN

Stack Overflow用户
提问于 2020-08-21 17:08:17
回答 2查看 151关注 0票数 0

​

代码语言:javascript
复制
.nav-links a {
  display: block;
  color: var(--secondColor);
  padding: 1rem;
  text-transform: uppercase;
  font-style: italic;
  font-weight: 900;
  text-shadow: yellow;
  transition: var(--mainTransition);
}

.nav-links a:hover {
  background: var(--mainGrey);
  transform: translateX(20px);
  color: var(--mainColor);
}
代码语言:javascript
复制
<nav class="nav-bar">
  <div class="nav-links">
    <ul>
      <li><a href="#" class="nav-link">home</a></li>
      <li><a href="#" class="nav-link">skill</a></li>
      <li><a href="#" class="nav-link">about</a></li>
      <li><a href="#" class="nav-link">project</a></li>
      <li><a href="#" class="nav-link">team</a></li>
    </ul>
  </div>
</nav>

​

当我在hover元素中使用transform: translateX(20px)属性时,整个网页左右摇晃。如果我在hover元素中使用padding属性将链接向左移动,则不会出现此问题,但我想使用translate属性以获得更大的灵活性

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-21 17:11:19

只需在锚标记上将display: block转换为display: inline-block即可。使用display: block时,它们是全宽的,当它们被平移20px时,会导致溢出和水平滚动条。

​

代码语言:javascript
复制
.nav-links a {
  display: inline-block;
  color: var(--secondColor);
  padding: 1rem;
  text-transform: uppercase;
  font-style: italic;
  font-weight: 900;
  text-shadow: yellow;
  transition: var(--mainTransition);
}

.nav-links a:hover {
  background: var(--mainGrey);
  transform: translateX(20px);
  color: var(--mainColor);
}
代码语言:javascript
复制
<nav class="nav-bar">
  <div class="nav-links">
    <ul>
      <li><a href="#" class="nav-link">home</a></li>
      <li><a href="#" class="nav-link">skill</a></li>
      <li><a href="#" class="nav-link">about</a></li>
      <li><a href="#" class="nav-link">project</a></li>
      <li><a href="#" class="nav-link">team</a></li>
    </ul>
  </div>
</nav>

​

票数 0
EN

Stack Overflow用户

发布于 2020-08-21 18:36:04

使用text-indent而不是transform:

​

代码语言:javascript
复制
.nav-links a {
  display: block;
  color: var(--secondColor);
  padding: 1rem;
  text-transform: uppercase;
  font-style: italic;
  font-weight: 900;
  text-shadow: yellow;
  transition: var(--mainTransition);
}

.nav-links a:hover {
  background: var(--mainGrey);
  text-indent: 20px;
  color: var(--mainColor);
}
代码语言:javascript
复制
<nav class="nav-bar">
  <div class="nav-links">
    <ul>
      <li><a href="#" class="nav-link">home</a></li>
      <li><a href="#" class="nav-link">skill</a></li>
      <li><a href="#" class="nav-link">about</a></li>
      <li><a href="#" class="nav-link">project</a></li>
      <li><a href="#" class="nav-link">team</a></li>
    </ul>
  </div>
</nav>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63519846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档