Поскольку только CSS может это сделать, но старые IE не могут, почему бы не использовать display: table; (and table-cell)
по умолчанию (ваш второй пример просто великолепен) и использовать display: inline; zoom: 1; /* display: inline-block for IE */ padding: 0 Npx;
для IE <8 с помощью условных комментариев? <br>И, может быть, JS / jQuery, если вам действительно нужно заботиться о пользователях IE6 / 7, только для них.
PS: вам следует добавить правило для : focus
.mainMenu li a:hover,
.mainMenu li a:focus {
/* ... */
}
, как утверждает Э. Мейер в комментариях к таблице стилей reset.css :; -)
/* remember to define focus styles! */
:focus {
outline: 0;
}