Вы должны указать отступы и высоту строки в теге a . Пролеты не нужны, и вам также не нужны никакие отступы в li. Если пользователь изменяет размер текста, фон всплывающих окон выходит из области вкладки.
<style type="text/css">
html, body {
background: #fff;
margin: 0;
padding: 0;
}
#nav {
font-family: Verdana, sans-serif;
height: 29px;
font-size: 12px;
padding: 0 0 0 10px; /* this is used for something else */
background-color: #456;
}
#nav ul, #nav ul li {
list-style: none;
margin: 0;
padding: 0px;
}
#nav ul {
text-align: center;
}
#nav ul li {
display: inline;
}
#nav ul li.last {
margin-right: 0;
}
#nav ul li a {
color: #FFF;
text-decoration: none;
padding: 8px 20px 7px 20px;
line-height:29px;
}
#nav ul li a:hover {
background-color: #789;
}
</style>
<div id="nav">
<ul>
<li><a href="/1/">One</a></li>
<li><a href="/2/">Two</a></li>
<li><a href="/3/">Three</a></li>
<li><a href="/4/">Four</a></li>
</ul>
</div>