仅在CSS水平下拉菜单中居中顶部索引菜单项

时间:2012-10-26 15:36:09

标签: css html5 css3

如何修改css,使得只有顶级项目(索引项目)被居中,子项目正常(因为它们已经位于左侧)?

<div id="menu">
<ul>
<li><a href="#nogo">File</a>
<ul>
<li><a href="#nogo">Save</a></li>
<li><a href="#nogo">Link 1-2</a></li>
<li><a href="#nogo">Link 1-3</a></li>
</ul>
</li>
<li><a href="#nogo">Edit</a>
<ul>
<li><a href="#nogo">Link 2-1</a></li>
<li><a href="#nogo">Link 2-2</a></li>
<li><a href="#nogo">Link 2-3</a></li>
</ul>
</li>
<li><a href="#nogo">View</a>
<ul>
<li><a href="#nogo">Link 3-1</a></li>
<li><a href="#nogo">Link 3-2</a></li>
<li><a href="#nogo">Link 3-3</a></li>
</ul>
</li>
</ul>
</div>

/*HORIZONTAL DROP-DOWN MENU */
#menu{
padding:0;
margin:0;
position: fixed;
top: 33px;
left: 0px;
font-size: 8pt;
}
#menu ul{
padding:0;
margin:0;
}
#menu li{
position: relative;
float: left;
list-style: none;
margin: 0;
padding:0;
} 

#menu li a{
width:120px;
height: 20px;
display: block;
text-decoration:none;
line-height: 20px;
background-color: #A9BBD3;
color: #FFF;
} 

#menu li a:hover{
background-color: #446087;
} 

#menu ul ul{
position: absolute;
top: 20px;
visibility: hidden;
}

#menu ul li:hover ul{
visibility:visible;
}

3 个答案:

答案 0 :(得分:1)

使用> CSS child combinator专门定位顶级广告的最简单方法。

<强> jsFiddle example

#menu > ul > li > a{
    text-align:center;
}

添加此规则将使顶级文本居中,同时使子菜单文本保持对齐。

答案 1 :(得分:1)

示例http://jsfiddle.net/zhprP/ 将一个类添加到顶部元素,将其他类添加到子项目,如

<li class='top'>File</li>
    <li class='sub'>...</li>

并在css中申请:

.top{
     text-align:center;
  }
 .sub{text-align:left;}

答案 2 :(得分:0)

您只需添加一个新类,然后将该类添加到您的顶级项目中,例如

#menu li.top_item{
    text-align: center;
}

然后是html:

<div id="menu">
<ul>
<li class="top_item"><a href="#nogo">File</a>
<ul>
<li class="top_item"><a href="#nogo">Save</a></li>
<li><a href="#nogo">Link 1-2</a></li>
<li><a href="#nogo">Link 1-3</a></li>
</ul>
</li>
<li class="top_item"><a href="#nogo">Edit</a>
<ul>
<li><a href="#nogo">Link 2-1</a></li>
<li><a href="#nogo">Link 2-2</a></li>
<li><a href="#nogo">Link 2-3</a></li>
...