我无法弄清楚这一点。我已经完成了研究,请不要评论我做更多的研究。此外,我是一个菜鸟,所以要好;)
这是我的网站:http://library.skybundle.com/
将鼠标悬停在主蓝色导航栏(标题区域)中的两个黑色矩形上。 a:悬停应该使颜色变为灰色。问题是在Chrome中,这看起来很完美。但是,在Firefox中,填充权限不够长或者其他东西,所以“教育课程”按钮的最右侧总是有一个小的黑色矩形(只有当光标悬停在按钮上时才会显示)。换句话说,鼠标悬停时灰色框不会一直到按钮区域的右侧端。我只是不明白为什么这在Chrome中看起来效果很好,但在Firefox中却有问题......
当我说我已尝试使用Firebug在Firefox中修复它时,请相信我。如果您使用浏览器中的编辑器来玩它,您会看到如果您尝试为Firefox填充更长时间,它会将整个按钮弹出一个新行。因此,为了解决这个问题,你必须使容器更宽,但原来的问题又回来了。这是一个问题圈,我相信你们中的一个天才会看到一个我想念的简单解决方案。
请帮忙。谢谢!
编辑:
这是我的JSFiddle和代码。请注意它在Chrome中看起来很棒但在Firefox中看起来不是很好吗?
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>
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;
}
答案 0 :(得分:5)
因为 a 标记(锚标记)具有内嵌的默认显示属性
由于 CSS Box Model ,您需要调整填充并将锚标记显示属性设置为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 */
}
CSS Box模型添加内容+填充+边框+边距
答案 1 :(得分:1)
看看这个CSS规则:
li#li-right {
border-left: 2px solid #5E5E5E;
list-style-position: inside;
}
删除list-style-position: inside
似乎可以解决您在Firefox中的问题(并且仍在Chrome中运行),但我还没有在其他浏览器中测试其含义。 CSS规则记录在案here。
答案 2 :(得分:1)
原因:如果您没有指定浏览器,浏览器会应用自己的css。 Firefox为您的子弹添加了空间(不知何故)
FF:
GooChrome:
用户JasonSperske为您提供了修复解决方案, 我邀请你重置你的CSS。
PS。与此同时,我们邀请您参加:https://stackoverflow.com/help和http://sscce.org/
阅读和理解这些页面会给你很少的声誉点