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
.