【问题标题】:Why is my a:hover css working differently in Firefox?为什么我的 a:hover css 在 Firefox 中的工作方式不同?
【发布时间】:2013-11-19 16:14:21
【问题描述】:

我想不通。我已经完成了研究,请不要让我做更多的研究。另外,我是菜鸟,所以要友善;)

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

将鼠标悬停在蓝色主导航栏(标题区域)中的两个黑色矩形上。 a:hover 应该使颜色变为灰色。问题是在 Chrome 中,这看起来很完美。但是,在 Firefox 中,padding-right 不够长之类的,所以“教育课程”按钮的最右侧总是有一个黑色的小矩形(只有将光标悬停在按钮上时才能看到)。换句话说,当鼠标悬停时,灰色框不会一直到按钮区域的右侧末端。我只是不明白为什么这在 Chrome 中看起来和工作得很好,但在 Firefox 中却出现了错误......

相信我,我已经尽我所能在 Firefox 中使用 Firebug 修复它。如果你在浏览器中使用编辑器来玩它,你会发现如果你尝试让 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>

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;
}

【问题讨论】:

  • 请在此处添加有意义的代码和问题描述。不要只链接到需要修复的站点 - 否则,一旦问题得到解决,这个问题将对未来的访问者失去任何价值。发布 Short, Self Contained, Correct Example (SSCCE) 来证明您的问题将帮助您获得更好的答案。有关详细信息,请参阅 Something on my web site doesn't work. Can I just paste a link to it? 谢谢!
  • @j08691 好的,谢谢,我没有意识到这一点。但好的一点,让我抓一些代码来快速发布。谢谢
  • 我相信你。现在,修复它!
  • 我也会检查你的 HTML,我看到了这样的错误代码:
    ,

标签: css google-chrome firefox cross-browser


【解决方案1】:

看看这个 CSS 规则:

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

删除 list-style-position: inside 似乎可以解决您在 Firefox 中的问题(并且在 Chrome 中仍然有效),但我还没有在其他浏览器中测试过它的含义。 CSS 规则记录在 here

【讨论】:

  • 你是对的。列表样式:无内无;是修复。 Firefox 和/或其他浏览器应用自己的“间距”...
  • 这也行得通,但我认为@Jonathan 的回答更稳定一些。谢谢大家!
【解决方案2】:

原因:如果您不指定,浏览器会应用自己的 css。 Firefox 为您的项目符号添加了空间(不知何故)

FF:

  • list-style-image 无
  • 列表样式位置在外面
  • list-style-type 光盘

谷歌浏览器:

  • 列表样式图像:无;
  • 列表样式位置:内部;
  • 列表样式类型:无;

用户 JasonSperske 为您提供了修复解决方案, 我邀请你重置你的 CSS。

PS。同时,邀请您查看:https://stackoverflow.com/help AND http://sscce.org/

阅读和理解这些页面会给你一些声誉点

【讨论】:

    【解决方案3】:

    因为 a 标签(锚标签)有一个默认的 display 属性 inline

    由于 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 盒子模型添加内容 + 内边距 + 边框 + 边距

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

    【讨论】:

    • 完美!它修复了它。我将填充更改为“填充:1px 10px 0px 10px;”让它看起来真的很好。
    • 很好.. 很高兴它修复了! :)
    猜你喜欢
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 2020-04-06
    • 1970-01-01
    相关资源
    最近更新 更多