菜单项之间的尴尬差距.如何解决


Awkward gap between menu items. How to fix?

我在制作网站的布局方面遇到问题。我不太擅长CSS。

所以我遇到的麻烦是我想有一个水平菜单栏,我想在我的网站中居中。此菜单可以有下拉子级。

实现在jQuery中。所以这是我菜单栏的HTML代码:

<ul class='dropdown'>
    <li><a href='index.php'>Home</a></li>
    <li><a href='#'>Incident</a>
        <ul class='sub_menu'>
            <li><a href='index.php?action=new'>New</a></li>
            <li><a href='index.php?action=edit'>Edit</a></li>
            <li><a href='index.php?action=manage'>Manage</a></li>
        </ul>
    </li>
    <li><a href='action_logout.php'>Log out</a></li>
</ul>

这是正在实现的 CSS:

*                                   { margin: 0; padding: 0; }
body                                { font: 14px Helvetica, Sans-Serif; margin: 15px; } 
a                                   { text-decoration: none; }
ul                                  { width: 800px; list-style: none; text-align: center; margin: auto; padding: 2px 2px;}
p                                   { margin: 15px 0; }
/* 
    LEVEL ONE
*/
ul.dropdown                         { position: relative; }
ul.dropdown li                      { display: inline; font-weight: bold; background: #ccc; padding: 2px 2px; border-bottom: 1px solid #777; }
ul.dropdown a:hover              { color: #000; }
ul.dropdown a:active                { color: #ffa500; }
ul.dropdown li a                    { display: inline; padding: 2px 8px; border-right: 1px solid #777; border-bottom: 1px solid #777;
                                  color: #222; }
ul.dropdown li:last-child a         { border-right: none; } /* Doesn't work in IE */
ul.dropdown li.hover,
ul.dropdown li:hover                { background: #F3D673; color: black; position: relative; }
ul.dropdown li.hover a              { color: black; }
/* 
    LEVEL TWO
*/
ul.dropdown ul                      { width: 175px; visibility: hidden; position: absolute; top: 100%; left: 0; text-align: left; }
ul.dropdown ul li                   { font-weight: normal; background: #f6f6f6; color: #000; 
                                  border-bottom: 1px solid #ccc; float: none; }
                                /* IE 6 & 7 Needs Inline Block */
ul.dropdown ul li a                 { border-right: none; width: 100%; display: inline-block; } 

可以在此处查看示例。

毕竟,我确实设法将菜单栏居中。但是,"主页"和"事件"菜单之间似乎有一点差距,我不知道如何摆脱它。

有什么想法吗?提前谢谢你。

不知何故,您设法将空格放在元素之外<li>,这是删除空格的完全相同的代码:http://jsfiddle.net/fPAFs/1/

这个怎么样:http://dabblet.com/gist/2520870

你的代码一团糟。

<style>
    * {
        padding: 0;
        margin:  0;
    }
    body {
        font-family: helvetica, serif;
        font-size:   14px;
    }
    ul {
        list-style-type: none;
    }
    .dropdown {
        text-align: center;
        font-size:  0;
        margin:     15px;
    }
    ul.dropdown ul {
        width:      220px;
        visibility: hidden;
        position: absolute;
        top: 1.8em;
        left: 0;
    }
    ul.dropdown ul li a {
        font-weight:   normal;
        background:    #f6f6f6;
        color:         #000;
        border-bottom: 1px solid #ccc;
        float:         none;
    }
    .dropdown > li {
        display:   inline-block;
        height:    1.2em;
        font-size: 14px;
        position: relative;
    }
    .dropdown li a {
        display:         block;
        background:      rgb(204, 204, 204);
        border-bottom:   rgb(119, 119, 119) 1px solid;
        border-right:    rgb(119, 119, 119) 1px solid;
        padding: 0.3em;
        color:           rgb(0, 0, 0);
        text-decoration: none;
        font-weight:     bold;
    }
    .dropdown li a:hover {
        background: rgb(243, 214, 115);
    }
</style>
<ul class='dropdown'>
    <li><a href='index.php'>Home</a></li>
    <li><a href='#'>Incident</a>
        <ul class='sub_menu'>
            <li><a href='index.php?action=new'>New</a></li>
            <li><a href='index.php?action=edit'>Edit</a></li>
            <li><a href='index.php?action=manage'>Manage</a></li>
        </ul>
    </li>
    <li><a href='action_logout.php'>Log out</a></li>
</ul>

试试这个新代码。虽然我敦促你不要在没有先理解别人的代码的情况下尝试实现它!