日期:2014-05-18  浏览次数:20495 次

网页导航栏鼠标放上去变色。但为什么变色的背景色不是整个li。而只是<a>的区域。求帮忙
li
  {
  list-style: none;
  margin: 0px;
  padding: 0px;
  float: left;
  height: 40px;
  line-height: 40px;
  font-size: 1.2em;
  width: 100px;
  text-align: center;
  background-color: Lime;
  }
  a
  {
  color: #474747;
  text-decoration: none;
  }
  li a:hover
  {
  color: #0000FF;
  background-color: Aqua;
  }

<div style="width: 700px; height: 40px; padding: 0;">
  <ul>
  <li><a href="Index.aspx">首页</a></li>
  <li><a href="Job.aspx">人才招聘</a></li>
  <li><a href="Interact.aspx">公众参与</a></li>
  </ul>
  </div>

------解决方案--------------------
li a:hover
{
color: #0000FF;
background-color: Aqua;
}

这个css就是在<li>中的<a>标签,当鼠标悬浮时,改变<a>中的背景色。
如果想改变整个<li>的背景色,可用类似<li onmousemove="this.style.backgroundColor='red'" onmouseout="this.style.backgroundColor=''"><a href="">dddddddddddddd</a></li>
来控制。
------解决方案--------------------
因为a标签占的区域不是整个li标签区域,那你的CSS是指上a标签变色。要把a标签高度和宽度设置跟li标签一样,然后display:block。就可以了。