10

我已经为此拉了一个多小时的头发,我只是不明白为什么它不起作用。

HTML:

<div id="mainmenu">
    <div class="menu">
        <ul>
            <li class="page_item page-item-6"><a href="http://localhost/mysite/blog/">Blog</a></li>
            <li class="page_item page-item-4 current_page_item"><a href="http://localhost/mysite/">Front Page</a></li>
            <li class="page_item page-item-2"><a href="http://localhost/mysite/sample-page/">Sample Page</a></li>
        </ul>
    </div>
</div>

CSS:

div#mainmenu { position: absolute; top: 40px; right: 0; font-size: 77%; }
div#mainmenu div.menu ul,
div#mainmenu div.menu ul li,
div#mainmenu div.menu ul li a
{
    height: 36px;
}
div#mainmenu div.menu ul {  
    display: table;
    float: left;
    width: 700px;
    table-layout: fixed;

    position: relative;
}
div#mainmenu div.menu ul li
{
    display: table-cell;
    padding: 0 10px;
    overflow: hidden;
}
div#mainmenu div.menu ul li a
{
    width: auto;
    background: none;
    margin: 10px auto;
}

在此处输入图像描述

4

3 回答 3

21

改成div#mainmenu div.menu ul li a这样:

div#mainmenu div.menu ul li a
{
    display: block;
    width: auto;
    background: none;
    margin: 10px auto;
}

a元素是inline默认的,你不能设置内联元素的高度/宽度。

于 2012-04-27T21:09:59.540 回答
6

链接的默认显示类型是内联,它不响应高度或宽度。相反,告诉您的链接是内联块,这会保留链接的流程,但让它们尊重您的特定大小(高度)的请求。

div#mainmenu div.menu ul li a
{
    display:inline-block;
    height:36px;
}
于 2012-04-27T21:13:09.720 回答
5

尝试行高而不是高度:

line-height:36px

http://jsfiddle.net/AlienWebguy/dP4F9/

于 2012-04-27T21:10:14.070 回答