【问题标题】::onhover pseudo-class not working as expected:onhover 伪类没有按预期工作
【发布时间】:2016-11-14 12:20:27
【问题描述】:

我有一段我写的代码,我把它放在了一段缩小的 CSS 上面:

.scroll-fixed-navbar {
  background-color: black !important;
}

.banner-list li i {
  color: #f86900 !important;
}

.btn-primary {
  background-color: #f86900 !important;
}

#nav li a {
  color: #f1861d !important;
}

#nav li:hover {
  color: #a8a89b !important;
}

[Huge chuck of minified code containing Font Awesome and Twitter Bootstrap]    

在一台服务器上,这可以按预期工作,并且链接项在悬停时会变成灰色。但是,在另一台服务器上,悬停效果不会触发。我尝试在检查器中打开 li 元素,但即使在效果起作用的服务器上,CSS 似乎也没有出现:

我在某处看到:hover 伪类应该只应用于a 元素,但我查看了W3C wiki,并没有提到这一点。我可以通过这种方式将:hover 应用于锚的li 父级,还是非法代码? Bootstrap 和/或 Font Awesome 代码是否会覆盖 CSS?或者问题可能是由其他原因引起的?

【问题讨论】:

    标签: css twitter-bootstrap font-awesome css-specificity onhover


    【解决方案1】:

    我认为是这样的:

    #nav li a {
      color: #f1861d !important;
    }
    

    覆盖这个:

    #nav li:hover {
      color: #a8a89b !important;
    }
    

    为什么要在li 上设置:hover?尝试在li:hover 之后定位a 元素:

     #nav li:hover a {
      color: inherit !important;
    }
    

    【讨论】:

    • 当然,这仅在 ali 的唯一子代时有效。如果不是,您还需要设置其他元素的颜色。您可以在 li 上设置颜色,然后使用 color: inherit;在所有孩子身上。
    • 好的。测试需要一段时间,因为我必须将文件连同其他一些更改一起发送给其他人,以便他们上传到生产服务器。我想我改成了li:hover,因为当时出于某种原因li a:hover 在我的测试服务器上根本不起作用,我想看看li:hover 是否会,尽管我记得那不是解决办法.无论如何,这似乎是一个合理的解释。一旦测试成功,我会接受你的答案:)。
    • 我永远无法确定这是否是问题所在,因为我无法直接访问生产服务器进行测试,但似乎确实如此,所以我接受了答案。
    猜你喜欢
    • 1970-01-01
    • 2021-10-19
    • 2020-03-18
    • 2012-06-14
    • 2014-11-15
    • 1970-01-01
    • 2012-07-02
    • 2011-09-07
    • 2013-03-03
    相关资源
    最近更新 更多