2

我正在学习 CSS,但我不知道菜单和子菜单居中。我正在使用 margin: auto 或 margin-left 和 margin-right to auto 但它不起作用。任何帮助,将不胜感激。谢谢

HTML

    <div id="menu">                          
    <ul id="nav">                          
        <li><a href="#">item1</a>            
            <ul>                               
                <li><a href="">subitem1</a></li> 
            <li><a href="">subitem2</a></li> 
            <li><a href="">subitem3</a></li> 
           </ul>                             
        </li>                                
        <li><a href="#">item2</a>            
            <ul>                               
                <li><a href="">subitem1</a></li> 
              <li><a href="">subitem2</a></li> 
                <li><a href="">subitem3</a></li> 
            <li><a href="">subitem4</a></li> 
            <li><a href="">subitem5</a></li> 
            <li><a href="">subitem6</a></li> 
            </ul>                            
        </li>                                
    </ul>                                  
</div>                                   

CSS

    #menu {                  
  clear: none;           
  width: 960px;          
}                        
ul#nav {                 
  width: 960px;          
  margin: 0;             
  padding: 0;            
  list-style: none;      
}                        
ul#nav li {              
    float: left;           
    display: inline-block; 
}                        
ul#nav li a {            
  line-height: 40px;     
    padding: 0 30px;       
  text-align: center;    
}                        
ul#nav ul {              
    display: none;         
}                        
ul#nav li:hover > ul {   
  position: absolute;    
    display: block;        
  margin: auto;          
    width: 100%;           
}                        

小提琴http://jsfiddle.net/davidgonzalo/ZzaDY

4

2 回答 2

1

这是你想要的结果吗? http://jsfiddle.net/shaunp/ZzaDY/1/

(请记住小提琴窗口很小,所以你可能有一个滚动条 - 内容确实居中)

  1. 添加text-align:center;ul#nav
  2. 摆脱float: left;_ul#nav li
  3. 摆脱position:absolute;_ul#nav li:hover > ul

CSS

#menu {
  clear: none;
  width: 960px;
}
ul#nav {
  width: 960px;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align:center;
}
ul#nav li {
    display: inline-block;  
}
ul#nav li a {
  line-height: 40px;
    padding: 0 30px;
}
ul#nav ul {
    display: none;
}
ul#nav li:hover > ul {
  display: block;
  margin: auto;
  width: 100%;
}
于 2013-08-11T17:50:28.507 回答
0

利用:

ul, li {

 text-align:center;

}


li
{
    margin-left: -40px;
}

这将使菜单和子菜单中的文本居中。

于 2013-08-11T17:39:45.147 回答