当鼠标悬停在单词上时,我试图创建一个粗下划线(For Navigation Bar)。但我注意到下划线比单词&这个词与下划线之间存在巨大差距。如何使下划线与单词的长度相同(类似于text-decoration: underline
)以及一个小的间隙。
以下是我的代码和结果图片。
nav > ul > li:hover > a {
border-bottom: 2px solid #F117B4;
text-decoration: none;
}
这是导航栏的完整代码。
nav { font-family: Open Sans Condensed; letter-spacing: 1px; }
nav { position: relative; border-bottom: 1px {{ settings.border_style }} {{ settings.border_color }}; /*border-top: 1px {{ settings.border_style }} {{ settings.border_color }};*/ }
nav > ul > li { margin-bottom: 0; }
nav > ul > li > a { text-decoration: none; color: {{ settings.nav_link_color }}; display: block; padding: 0 15px; font-size: 17px/*font-size: {{ settings.nav_font_size }}*/;
line-height: {{ settings.nav_line_height }}; height: {{ settings.nav_line_height }}; font-weight: {{ settings.nav_weight }}; text-transform: {{ settings.nav_font_style }}; }
nav > ul > li > a.current { color: {{ settings.selected_nav_link_color }}; }
nav > ul > li:hover > a { display:inline; border-bottom: 2px solid #F117B4; color: {{ settings.nav_link_hover_color }}; text-decoration: none; }
nav > ul > li.dropdown { position:relative; }
nav > ul > li.dropdown > .dropdown { background: {{ settings.nav_dropdown_background_color }}; list-style: none outside none; padding: 5px 15px; display: none; position: absolute; min-width: 180px; z-index: 99999; top: 100%; left: 0%; margin-left: 15px; border: 1px solid {{ settings.border_color }}; }
nav > ul > li.dropdown:hover > .dropdown { display: block; z-index: 999999; -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.10); -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.10); box-shadow:0 0 3px rgba(0, 0, 0, 0.10); }
nav > ul > li.dropdown li { list-style: none; font-size: 13px; line-height: 30px; }
嗨,有人有解决方案吗? :(请帮帮我。谢谢。
答案 0 :(得分:2)
使用a:hover
代替li:hover
这应该可以解决重叠下划线的问题。
<style>
nav > ul > li > a:hover {
border-bottom: 2px solid #F117B4;
text-decoration: none;
}
</style>
<nav>
<ul>
<li>
<a>hello</a><!--use   for line overlapping -->
</li>
</ul>
</nav>
答案 1 :(得分:2)
<强>更新强>
- 完全按照单词的大小加下划线。
- 下划线和单词减少的距离。使用伪元素实现。
醇>
这是jsfiddle:http://jsfiddle.net/e79gV/1/
<强> CSS 强>
nav > ul > li > a {
text-decoration: none;
}
.border{
position:relative;
}
.border:hover::after{
content:'';
position:absolute;
width: 100%;
height: 0;
left:0;
bottom:0px; /*Change this to increase/decrease distance*/
border-bottom: 2px solid #000;
}
<强> HTML 强>
<nav>
<ul>
<li><a class="border" href="#">M</a>
</li>
<li><a class="border" href="#">Menu</a>
</li>
<li><a class="border" href="#">Menu Item</a>
</li>
</ul>
</nav>
下划线与单词的长度完全相同。
一些可能有帮助的参考资料:
答案 2 :(得分:0)
border-bottom-style property
完成。
要定位的两个元素是li:hover
和a:hover
,具体取决于您使用的是哪一个。看看jsfiddle https://jsfiddle.net/14umqLrr/。
此外,您可以使用outline-offset:
属性来偏移边框,使其更接近或远离导航栏文本。