Оскільки ви сказали в коментарі, що чим більше у вас варіантів, тим краще, ось ще один.
У CSS3 є дві різні так звані «моделі коробки». Один додає рамку та обшивку шириною блочного елемента, а другий - ні. Можна використовувати останнє, вказавши
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
Тоді в сучасних браузерах елемент завжди матиме однакову ширину. Тобто, якщо ви застосуєте до неї рамку на наведення курсору, ширина рамки не додасть до загальної ширини елемента; рамка буде додана "всередину" елемента, так би мовити. Однак, якщо я добре пам’ятаю, ви повинні width
чітко вказати, щоб це працювало. Це, мабуть, не є можливим для вас у цьому конкретному випадку, але ви можете мати це на увазі для майбутніх ситуацій.