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