CSS - <li> Элементы в горизонтальном меню имеют разрыв между ними

Проблема

По какой-то причине левая и правая границы элементов li не касаются друг от друга, существует разрыв в 4-5 px между ними. Я не знаю, откуда это происходит... я "Мы тратим много времени на обезьяну в Firebug без везения...

Разметка

 <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>

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;
}

Другая информация

Я использую сетку 960 grid reset (которая, похоже, не изменяет мою проблему без нее). Мне нужно заставить это работать в IE 7+ и Firefox. Проблема существует в IE8 и FF.

Ответ 1

Вы используете display: inline. Это означает, что символы пробелов между каждым из этих элементов li соблюдаются и будут свернуты в одно пространство. Если вам нужно, вы можете попробовать вместо float или удалить все пробелы между этими элементами.

 <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>

будет работать, или если вы склонны использовать float,

#menu li {
    float: left;
}

вместо display: inline

Ответ 2

Чтобы перейти от решения Yi Jiang:

<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>

гарантирует, что у вас действительно нет пробела. Плавающие левые могут вызвать проблемы в меню, которые имеют опрокидывание a:hover.