Проблема в том, что вы на самом деле сохраняете изображения в обратном направлении. Левое изображение должно быть коротким, а правое - расширенным. После того, как вы изменили это, ваш CSS должен сразу встать на свои места:
.menu { list-style: none; }
.menu li {
float: left;
font-size: 12px;
margin: 25px 10px 0; }
.menu li a {
background: none 0 0 no-repeat;
text-decoration: none;
padding: 0 0 0 10px;
display: inline-block; }
.menu li a:hover {
background-image: url(images/menu_hover.png);
color: #ffffff; }
.menu li a span {
background: none 100% 0 no-repeat;
float: left;
padding: 2px 10px 0 0;
display: block; }
.menu li a:hover span { background-image: url(images/menu_hover_right.png); }
Обычно хорошей идеей является установка высоты внутри как в .menu li a
, так и в .menu li a span
. Из-за несоответствий в браузере, заполнение является невероятно ненадежным способом установки фиксированной высоты.