23

我想强调我的导航菜单,但问题是我需要它更厚,所以我使用底部边框,以便我可以将宽度设置为 6px。

我似乎可以弄清楚如何让边框看起来更接近文本。目前,文本和底部边框之间似乎有大约 10 像素的间隙,我不想有任何间隙。

我试图用 {bottom: 10px} 定位另一个 div 并相对于每个 {li} 定位它,但我似乎无法让它工作。

这就是我所拥有的

代码

    <div id="menu">
    <ul>
        <li><a href="#home">home</a></li>
        <li><a href="#about">About</a></li>
        <li><a href="#contact">Contact</a></li>
    </ul>
</div>

CSS

#menu {
position: fixed;
left: 25%;
clear: both;
float: left;
font-size: 80px;
z-index: 500;
filter: alpha(opacity=75);
opacity: .75;
}

#menu ul{
text-decoration: none;
list-style-type: none;
margin: 0;
padding: 0;
line-height: 90px;
}

#menu ul li{
text-decoration: none;
list-style-type: none;
margin: 0;
}

#menu ul li a{
border-bottom: 6px solid #000;
text-decoration: none;
list-style-type: none;
color: #000;
}

#menu ul li a:hover{
}
4

5 回答 5

21

您可以使用line-height和的混合margin来获得这样的效果,如下所示:

#menu ul li a {
    border-bottom: 6px solid #000000;
    color: #000000;
    display: block;
    line-height: 50px;
    list-style-type: none;
    margin: 20px 0;
    text-decoration: none;
}
于 2012-04-12T21:13:50.730 回答
5

display: inline-block;如果较长的链接包含换行符,与 with 结合使用可能border-bottom会导致一些奇怪的行为换行符,请参阅http://jsfiddle.net/PQZ9H/。或者,您可以使用 和 的组合,background-imagebackground-position优点是不触摸显示值。

a {
    text-decoration: none;
    position: relative;
    background-repeat: repeat-x;
    background-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==);
    background-position: left 15px;
}
a:hover { background: none; }

一个缺点是您可能必须为您使用的每个字体大小定义一个背景位置。

使用这种技术,您还可以从像 g 或 y 添加的下降器中删除边框

a span.descender { text-shadow: -1px 0px 0px white, 1px 0px 0px white, -2px 0px 0px white, 2px 0px 0px white, -3px 0px 0px white, 3px 0px 0px white; }

<a href="javascript:void(0)"><span class="descender">A link with descenders like g or y</span></a>

http://jsfiddle.net/25XNY/1

于 2013-12-14T22:28:12.870 回答
2

试试这个(原产俄罗斯http://artgorbunov.ru/bb/soviet/20120510/)文章方法(背景渐变和http://jsfiddle.net/d3WG6/

<p>Зигварт считал <a><span>критерием истинности необходимость и&nbsp;общезначимость, для&nbsp;которых нет никакой опоры</span></a> в&nbsp;объективном мире.</p>

a { font-size: 50%; border-bottom: 1px dashed red; }
a > span { font-size: 200%; line-height: normal; }
于 2013-04-22T13:19:21.987 回答
0

边距属性不能改变边框底部的位置,所以

元素的高度<a>定义边框底部的位置。

 #menu > ul > li > a {
      height: ;
 }
于 2017-02-15T18:05:26.403 回答
-2

与原始问题有类似的问题。它在这里得到了回答:https ://stackoverflow.com/questions/18180490/move-border-bottom-closer-to-text

上面的解决方案可能会帮助那些无法为他们解决这个问题的人。

于 2013-08-13T12:20:37.977 回答