CSS -
  • Items in Horizontal Menu have a Gap Bet
  • 2019-02-16 12:22发布

    The Issue

    For some reason the left and right borders of the li items do not touch there is about a 4-5 px gap between them. I have no clue where it is coming from... I've spend a good amount of time monkeying around in Firebug with no luck...

    The Markup

     <div id="menucontainer">      
          <ul id="menu">              
               <li><a href="google.com"></a></li>
               <li><a href="google.com"></a></li>
               <li><a href="google.com"></a></li>
          </ul>
     </div>
    

    The CSS

    #menucontainer
    {
        display: block;
        float: left;
        width: 100%;
    }
    
    ul#menu
    {
        display: block;
        padding: 5px 0px 5px 15px;
    }
    
    ul#menu li
    {
        display: inline;
        padding: 3px;
        border-right: 1px solid #D8D6FF;
        border-left: 1px solid #D8D6FF;
        margin: 0 !important;
    }
    
    ul#menu li a
    {
        padding: 3px;
        margin:0;
    }
    

    Other Info

    I am using the 960 grid system CSS reset (which doesn't seem to change my issue w/ or w/o it). I need to get this working in IE 7+ and Firefox - Issue exists in IE8 and FF.

    标签: css menu
    2条回答
    淡お忘
    2楼-- · 2019-02-16 13:01

    To follow on from Yi Jiang's solution:

    <div id="menucontainer">      
      <ul id="menu">              
           <li><a href="google.com"></a></li><!--
        --><li><a href="google.com"></a></li><!--
        --><li><a href="google.com"></a></li>
      </ul>
    </div>
    

    ensures that you really don't have any white space. Floating left can cause problems in menus that have a rollover a:hover.

    查看更多
    贪生不怕死
    3楼-- · 2019-02-16 13:19

    You're using display: inline. That means that whitespace characters between each of those li elements are respected, and will be collapsed into a single space. If you need to, you can try using floats instead, or remove all whitespace between those elements.

     <ul id="menu">              
         <li><a href="http://example.com"></a>
         </li><li><a href="http://example.com"></a>
         </li><li><a href="http://example.com"></a></li>
     </ul>
    

    would work, or if you're inclined to using floats,

    #menu li {
        float: left;
    }
    

    instead of display: inline

    查看更多
    登录 后发表回答