javascript CSS3悬停在导航项上时出现轻微缩进

uklbhaso  于 2023-01-24  发布在  Java
关注(0)|答案(2)|浏览(104)

当我将鼠标悬停在nav部件的第一个ul的主图标上时,下拉菜单出现在完美的位置,然而,当我将鼠标悬停在子菜单项上时,出现了轻微的压痕,我似乎找不到原因。
悬停在三个点“...”图标上:

将鼠标悬停在菜单的子项上:

你可以清楚地看到缩进时,我悬停在子菜单,我的颜色紫罗兰色悬停,这正是当缩进将发生。

.main-navigation {
  position: absolute;
  right: 0px;
  margin-top: -20px;
  margin-right: 15px;
  width: 2em;
  height: 2em;
  color: #D9D9D9;
  border: 1px solid #D9D9D9;
  /* padding: auto; */
  align-content: center;
}

.firstLevelul{
  padding-left: 0;
  list-style: none;
  justify-content:flex-end;
}

.firstLevela{
  display: block;
  text-align: center;
  font: normal small-caps 100 20px/1.8em 'Helvetica Neue';
  text-decoration: none;
}

.firstLevela:hover{
  color: #D9D9D9;
  width: 1.5em;
  height: 1.5em;
}

.secondLevelul{
  display: none;
}

.secondLevela{
  display: block;
}

.secondLevelli:hover{
  background-color: violet;
}

.firstLevelli:hover > .secondLevelul{
  display: block;
  width: 200px;
  height: 200px;
  background-color: white;
  border: 1px solid #D9D9D9;
  margin-left: -169px;
}
<nav class="main-navigation">
  <ul className="firstLevelul">
    <li className="firstLevelli">
      <a href="#" className="firstLevela"><MoreHorizIcon className="editDropDownIcon" /></a>
      <ul className="secondLevelul">
        <li className="secondLevelli"><a className="secondLevela" href="#">sub menu</a></li>
        <li className="secondLevelli"><a className="secondLevela" href="#">sub menu</a></li>
        <li className="secondLevelli"><a className="secondLevela" href="#">sub menu</a></li>
      </ul>
    </li>
  </ul>
</nav>
z9zf31ra

z9zf31ra1#

这有点难以处理,因为您没有提供太多代码。
但是我相信这个问题是基于CSS中firstLevela:hover选择器中的height: 1.5em
我制作了这个非常基本的JSFiddle来演示
https://jsfiddle.net/t7gj9qx2/

5lhxktic

5lhxktic2#

是的,这是由于em height,它从父元素字体大小中获取高度。最好使用rem或px。

相关问题