Поскольку вы сказали в комментарии, что чем больше вариантов у вас есть, тем лучше, вот еще один.
В CSS3 есть две разные так называемые «бокс-модели». Один добавляет границу и дополнение к ширине элемента блока, а другой - нет. Вы можете использовать последние, указав
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
Тогда в современных браузерах элемент всегда будет иметь одинаковую ширину. I.e., если вы примените к нему границу при наведении, ширина границы не будет добавляться к общей ширине элемента; граница будет добавлена «внутри» элемента, так сказать. Однако, если я правильно помню, вы должны явно указать width
, чтобы это работало. Вероятно, это не вариант для вас в этом конкретном случае, но вы можете учесть его в будущих ситуациях.
Ну, это сработало на ie8, Mozilla, Opera и Chrome, достаточно для меня, я не пробовал его в Safari, но я не против сафари. большое спасибо! –
Да, это особенно IE6, что это не работает. IE7 в порядке. – bobince
спасибо большое, это отлично поработало для меня –