我正在尝试将自定义CSS样式应用于Bootstrap导航栏,以便在鼠标悬停时为链接文本加下划线。我也喜欢淡化的下划线。
以下是我目前的情况:https://jsfiddle.net/xfddh0r5/
.navbar-default {
background-color: #fff;
}
.navbar-default .navbar-nav > li {
background-color: #fff;
}
.navbar-default .navbar-nav > li > a {
color: #333;
border-bottom: 1px solid transparent;
}
.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
background-color: #fff;
color: #439348;
border-bottom: 1px solid #439348;
}
我注意到两个奇怪的问题:
有人能告诉我为什么会这样吗?
非常感谢!
答案 0 :(得分:4)
您可以将padding
重置为0
或减少值。并使用margin
再次调整间距。
.navbar-default .navbar-nav > li > a {
color: #333;
border-bottom: 1px solid transparent;
padding: 0; /*removing spacing*/
margin: 14px; /*add spacing*/
}
答案 1 :(得分:2)
链接有很多填充,以便于点击。如果要对文本应用边框,可以将文本放在范围内,然后将样式应用于该范围。
HTML:
<ul class="nav navbar-nav navbar-right">
<li class="active"><a href="#"><span>Home</span></a></li>
<li><a href="#"><span>Item 1</span></a></li>
<li><a href="#"><span>Item 2</span></a></li>
</ul>
CSS:
.navbar-default .navbar-nav > li > a > span {
border-bottom: 1px solid transparent;
}
您可以使用CSS过渡完成淡入淡出:
.navbar-default .navbar-nav > li > a:hover > span {
border-bottom-color: #439348;
transition: border 1s linear;
}