为什么我的a:hover css在Firefox中的工作方式不同?

chr*_*ion 1 css firefox google-chrome cross-browser

我无法弄清楚这一点.我已经完成了研究,请不要评论我做更多的研究.此外,我是一个菜鸟,所以要好;)

这是我的网站:http://library.skybundle.com/

将鼠标悬停在主蓝色导航栏(标题区域)中的两个黑色矩形上.a:悬停应该使颜色变为灰色.问题是在Chrome中,这看起来很完美.但是,在Firefox中,填充权限不够长或者其他东西,所以"教育课程"按钮的最右侧总是有一个小的黑色矩形(只有当光标悬停在按钮上时才会显示).换句话说,鼠标悬停时灰色框不会一直到按钮区域的右侧端.我只是不明白为什么这在Chrome中看起来效果很好,但在Firefox中却有问题......

相信我,当我说我已尝试使用Firebug在Firefox中修复它时所做的一切.如果您使用浏览器中的编辑器来玩它,您会看到如果您尝试为Firefox填充更长时间,它会将整个按钮弹出一个新行.因此,为了解决这个问题,你必须使容器更宽,但原来的问题又回来了.这是一个问题圈,我相信你们中的一个天才会看到一个我想念的简单解决方案.

请帮忙.谢谢!

编辑:

这是我的JSFiddle和代码.请注意它在Chrome中看起来很棒但在Firefox中看起来不是很好

http://jsfiddle.net/S4st8/

HTML:

<div id="navigation">
  <div id="navigation-inner">
    <div id="page-nav">
      <div id="primary-nav">
        <ul id="top-menu">
          <li id="li-left"><a href="#">Product Training Videos</a></li>
          <li id="li-right"><a href="#">Educational Courses</a></li>
        </ul>
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#navigation {
  background: url(http://library.skybundle.com/wp-content/themes/business-services/library/styles/colour-images/mu-nav.jpg) repeat-x;
  margin: 0px;
  padding: 0px;
  height: 40px;
  width: 100%;
}

#navigation-inner {
  margin: 0px auto;
  padding: 0px;
  height: 48px;
  width: 960px;
}

#page-nav {
  margin: 0px;
  padding: 0px;
  height: 40px;
  width: 960px;
}

div#primary-nav {
  position: relative;
  display: block;
  float: left;
  margin: 0;
  padding: 0;
}

ul#top-menu {
  margin: -5px 0.325em 0 0.325em;
  position: absolute;
  padding: 0;
  z-index: 100;
  top: 0;
  left: 3em;
  width: 367px;
}

ul#top-menu li {
  line-height: 3em;
  list-style-type: none;
  height: 49px;
  background-color: #2C2C2C;
  float: left;
}

li#li-right {
  list-style-position: inside;
  border-left: 2px solid #5E5E5E;
}

ul#top-menu li a {
  font-weight: bold;
  font-size: 11pt;
  text-decoration: none;
  padding: 15px 10px 16px 10px;
  color: #ffffff;
}

ul#top-menu li a:hover {
  text-decoration: none;
  width: auto;
  color: #ffffff;
  background-color: #505354;
  padding: 15px 10px 17px 10px;
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*llo 5

它因为一个标签(锚标记)有一个默认显示的属性直列

由于CSS Box模型,您需要调整填充并将锚标签显示属性设置为display:block;

显示块允许锚标签填充LI标签的整个空间

ul#top-menu li a更改为:

ul#top-menu li a{
    color: #FFFFFF;        
    font-size: 11pt;
    font-weight: bold;

    display: block; /* add this */
    padding: 0 10px; /* add this */
}
Run Code Online (Sandbox Code Playgroud)

CSS Box模型添加内容+填充+边框+边距

https://developer.mozilla.org/en-US/docs/Web/CSS/box_model