下拉菜单中心对齐

时间:2014-02-20 23:55:31

标签: html css

这是代码。请注意,这不是我的代码。

HTML:

<div class="drop">
<ul class="drop_menu">
<li><a href='#'>Link 1</a>
    <ul>
    <li><a href='#'>Sub Link 1</a></li>
    <li><a href='#'>Sub Link 2</a></li>
    </ul>
</li>
<li><a href='#'>Link 2</a>
    <ul>
    <li><a href='#'>Sub Link 1</a></li>
    <li><a href='#'>Sub Link 2</a></li>
    <li><a href='#'>Sub Link 3</a></li>
    <li><a href='#'>Sub Link 4</a></li>
    </ul>
</li>
<li><a href='#'>Link 3</a>
    <ul>
    <li><a href='#'>Sub Link 1</a></li>
    <li><a href='#'>Sub Link 2</a></li>
    <li><a href='#'>Sub Link 3</a></li>
    <li><a href='#'>Sub Link 4</a></li>
    </ul>
</li>
</ul>
</div>

CSS:

.drop_menu {
    background:#005555;
    padding:0;
    margin:0;
    list-style-type:none;
    height:30px;

}
.drop_menu li { float:left; }
.drop_menu li a {
    padding:9px 20px;
    margin-left:auto;
    margin-right:auto;
    display:block;
    color:#fff;
    text-decoration:none;
    font:12px arial, verdana, sans-serif;
}

/* Submenu */
.drop_menu ul {
    position:absolute;
    left:-9999px;
    top:-9999px;
    list-style-type:none;
}
.drop_menu li:hover { position:relative; background:#5FD367; }
.drop_menu li:hover ul {
    left:0px;
    top:30px;
    background:#5FD367;
    padding:0px;
}

.drop_menu li:hover ul li a {
    padding:5px;
    display:block;
    width:168px;
    text-indent:15px;
    background-color:#5FD367;
}
.drop_menu li:hover ul li a:hover { background:#005555; }

我的问题是,如何将“Link 1”,“Link 2”和“Link 3”居中?在未来,我将添加更多“链接4,5,6 ...”,因此我需要一个不需要“几乎居中”的解决方案,而是一个永久的解决方案。

你能帮帮我吗?

这是JSFiddle的链接,您可以在其中看到代码正常工作 - http://jsfiddle.net/W5F3p/

我最诚挚的问候

2 个答案:

答案 0 :(得分:2)

如果您不支持IE7及以下版本,我会将li:左侧的li更改为显示:inline-block,然后将text-align:center添加到父级ul。

.drop_menu {
    background:#005555;
    padding:0;
    margin:0;
    list-style-type:none;
    height:30px;
    text-align:center;
}
.drop_menu li { display:inline-block; }
.drop_menu li a {
   padding:9px 20px;
   margin-left:auto;
   margin-right:auto;
   display:block;
   color:#fff;
   text-decoration:none;
   font:12px arial, verdana, sans-serif;
}

/* Submenu */
.drop_menu ul {
    position:absolute;
    left:-9999px;
    top:-9999px;
    list-style-type:none;
}
.drop_menu li:hover { position:relative; background:#5FD367; }
.drop_menu li:hover ul {
     left:0px;
    top:30px;
    background:#5FD367;
    padding:0px;
}

.drop_menu li:hover ul li a {
    padding:5px;
    display:block;
    width:168px;
    text-indent:15px;
    background-color:#5FD367;
    text-align:left;
}
.drop_menu li:hover ul li a:hover { background:#005555; }

见这里:http://jsfiddle.net/s6Jcx/1/

答案 1 :(得分:1)

在容器标记中使用text align并将列表设置为显示inline-block:

http://jsfiddle.net/W5F3p/1/

.drop
 {
   text-align: center;
background:#005555;    
 }

有点hacky但是有把戏。