意外的导航栏在悬停时移动

the*_*ler 0 html css

我正在尝试修复此导航菜单几个小时..但我不确定悬停效果的问题出在哪里。也许填充是问题,但我可以请您指导我如何解决问题吗?

我想在悬停时实现这种效果,但是当我悬停导航项时,所有其他项都在移动。 在此处输入图片说明

这是我的代码示例。

body { background: #000; }
.navigation {
  float: right;
}
.navigation ul {
  list-style: none;
}
.navigation ul li {
  display: inline-block;
}
.navigation ul li a {
  display: block;
  font-family: "Rubik", sans-serif;
  font-weight: 300;
  font-size: 17px;
  color: #fff;
  line-height: 64px;
  text-decoration: none;
  padding: 8px 15px;
}
.navigation ul li a:hover {
  color: red;
  border: 1px solid #fff;
  border-radius: 22px;
  width: 165px;
}
Run Code Online (Sandbox Code Playgroud)
<nav class="navigation">
  <ul>
    <li><a href="#">Features</a>
    </li>
    <li><a href="#">Blog</a>
    </li>
    <li><a href="#">Support</a>
    </li>
    <li><a href="#">Get Sellr Now</a>
    </li>
  </ul>
</nav>
Run Code Online (Sandbox Code Playgroud)

Our*_*rus 6

您似乎添加border了悬停。border是布局和效果维度的一部分。

解决此问题的一种方法是向非:hover规则添加相同大小的透明边框:

.navigation ul li a {
  border: 1px solid transparent;
}
Run Code Online (Sandbox Code Playgroud)

您还设置width:hover,当然也会影响布局。

我怀疑你想要的是:

.navigation ul li a {
  display: block;
  font-family: "Rubik", sans-serif;
  font-weight: 300;
  font-size: 17px;
  color: #fff;
  line-height: 64px;
  text-decoration: none;
  padding: 8px 15px;
  border: 1px solid transparent;
  border-radius: 22px;
}
.navigation ul li a:hover {
  border-color:#fff;
}
Run Code Online (Sandbox Code Playgroud)