所以我似乎对悬停功能有疑问。屏幕全屏显示时,我可以将鼠标悬停在菜单选项上,然后整个背景颜色都会改变。但是,当我调整屏幕大小时,只有一部分背景颜色发生变化。我在屏幕调整大小时看到了这个:

Screen Resize Issue

这是HTML代码

<nav>
<ul>
  <li><a href="index.html" class="currentlink">Home</a></li>
  <li><a href="gettingstarted.html">Getting Started</a></li>
  <li><a href="surviveandthrive.html">How Do Plants Thrive?</a></li>
  <li><a href="problems.html">Common Problems</a></li>
  <li><a href="indoorplants.html">Great Indoor Plants</a></li>
  <li><a href="references.html">References</a></li>
</ul>
<nav>


和CSS

nav {
     width: 100%;
     background: #003300;
     border: 1px solid #ccc;
     border-right: none;
}

nav ul {
    overflow: hidden;
    margin: 0;
    padding: 0;
}

nav ul li {
    list-style: none;
    float: left;
    text-align: center;
    border-left: .5% solid #fff;
    border-right: .5% solid #ccc;
    width: 16.6667%; /* fallback for non-calc() browsers */
    width: calc(100% / 6);
    box-sizing: border-box;
}

nav ul li:first-child {
    border-left: none;
}

nav ul li a {
    display: block;
    text-decoration: none;
    color: white;
    padding: 10px 0;
}

nav ul li a:hover {
    background-color: #00b300;
    width:100%;
}

.currentlink {
    background: #00b300;
}


预先感谢您提供的任何帮助!

最佳答案

通过测试代码,似乎出现的问题是列表项根据其内容分配了高度。这样,当您调整窗口大小时,迫使一个或多个列表项中的文本要换行时,带有换行文本的列表项会比没有或没有换行文本的列表项高。

根据您希望如何设置导航样式,一种可能的解决方案是利用CSS的flex样式。对于您的CSS,请尝试以下操作:

nav {
  border: 1px solid #ccc;
  border-right: none;
}
nav ul {
  background: #003300;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  justify-content: space-around;
  list-style: none;
  margin: 0;
  padding: 0;
  -webkit-flex-flow: row wrap;
}
nav ul li {
  border-left: .5% solid #fff;
  border-right: .5% solid #ccc;
  box-sizing: border-box;
  font-weight: bold;
  padding: 5px;
  text-align: center;
  width: 16.6667%;
  /* fallback for non-calc() browsers */
  width: calc(100% / 6);
}
nav ul li:first-child {
  border-left: none;
}
nav ul li:hover {
  background-color: #00b300;
}
nav ul li a {
  color: white;
  text-decoration: none;
}
.currentlink {
  background: #00b300;
}


对于您的HTML,因为我们无法为<a>分配高度,所以将class="currentLink"移到<a>的父<li>上,如下所示:

<li class="currentlink"><a href="index.html">Home</a></li>


要查看全部操作,请选中此jsfiddle

09-27 10:47