【问题标题】:CSS Bootstrap stop hover border on active itemCSS Bootstrap 在活动项目上停止悬停边框
【发布时间】:2015-12-30 10:12:29
【问题描述】:

如何阻止两次应用边框...一次用于活动项目,一次用于悬停?

我尝试过使用.navbar a:not(.active):hover,但它不起作用。我还尝试为所有导航栏项目提供具有所需厚度但具有背景颜色的底部边框,并更改悬停时的颜色。

所需的效果是活动项目以粗体显示并具有白色bottom-border,而鼠标悬停的项目也具有白色bottom-border(在图像中以红色显示)但不是粗体(因为这两种颜色都是白色的,所以我不关心哪个“赢”)。但我的问题是当鼠标悬停在活动项目上时,bottom-border 被添加了两次。

【问题讨论】:

  • 寻求代码帮助的问题必须在问题本身中包含重现它所需的最短代码。见How to create a Minimal, Complete, and Verifiable example。 CSS 的图像不是代码......
  • 一个元素不能有两个边框,所以这里显然有两个元素......可能是一个li和一个锚a......决定哪个获得边框并相应地调整你的CSS。
  • @Paulie_D:我知道一个元素不能有两个边框,我有一个li,其中包含一个Html.ActionLink,后者会算作锚a吗?

标签: css twitter-bootstrap


【解决方案1】:

这很可能是因为边框被应用于 2 个不同的元素。

我给你发了fiddle 来了解这个问题。

正如您所见,一切正常,因为 .active 类和 :hover 伪类都引用了 ul > li。

ul > li.active{
  border-bottom:3px solid red;
}

ul > li:hover{
  border-bottom: 3px solid yellow;
}

例如,如果您尝试将 :hover 更改为 ul > li > a 您会看到双边框。

ul > li.active{
  border-bottom:3px solid red;
}

ul > li > a:hover{
  border-bottom: 3px solid yellow; /* double border */
}

【讨论】:

  • 谢谢你,我认为它会是这样的。我自己制作了jsfiddle(可能行不通,这是我的第一次尝试)。但是你可以看到悬停的背景颜色是浅灰色,我希望它与背景相同(所以它看起来什么都没有)但无法让它工作。
  • 这是没有灰色背景的工作fiddle。这是由.nav > li > a:hover 中需要覆盖的后台规则引起的。您可以在小提琴的 CSS 部分的最后几行中看到它的注释。如果解决了您的问题,请将我之前的答案投票为正确。谢谢
  • 我需要多玩一点,它在 jsfiddle 中可以正常工作,但在我的项目中我仍然得到双边框:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-16
  • 1970-01-01
  • 2015-07-03
  • 2021-01-02
  • 2020-11-19
  • 2019-11-09
相关资源
最近更新 更多