CSS,如何将水平菜单和子菜单居中?

时间:2013-08-11 17:37:19

标签: css

我正在学习CSS,我不知道中心的菜单和子菜单。 我正在使用保证金:auto或margin-left和margin-right来自动但它不起作用。 任何帮助,将不胜感激。 感谢

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

2 个答案:

答案 0 :(得分:1)

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

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

  1. text-align:center;添加到ul#nav
  2. float: left;
  3. 中删除ul#nav li
  4. position:absolute;
  5. 中删除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%;
    }
    

答案 1 :(得分:0)

使用:

ul, li {

 text-align:center;

}


li
{
    margin-left: -40px;
}

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