Одна из причин, по которой это не работает так, как вы ожидаете, заключается в том, что вы применяете display:block
только к :hover
, его нужно применить к элементу без селектора: hover, иначе вы получите «сдвиг» размеры. Неважно, какой тип дисплея вы используете, вы просто должны убедиться, что они одинаковы, и по умолчанию <a>
является встроенным.
Другая причина связана с сокращенными границами, вам нужно добавить тип границы для прозрачной версии, например solid
вместо none
.
Техника, которую вы используете, абсолютно законна, нет необходимости в заполнении хаков или контуров (что не добавляет размерности).
http://jsfiddle.net/Madmartigan/kwdDB/
Попробуйте это:
#wd-navbar li a {
border: medium solid transparent;
display: block;
margin: 1px;
}
#wd-navbar li a:hover {
background-color: #F5DEB3;
border: medium solid;
}