Ponieważ powiedziałeś w komentarzu, że im więcej masz opcji, tym lepiej, oto kolejna.
W CSS3 istnieją dwa różne tak zwane „modele pudełkowe”. Jeden dodaje obramowanie i wypełnienie do szerokości elementu blokowego, a drugi nie. Możesz użyć tego ostatniego, określając
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
Wtedy w nowoczesnych przeglądarkach element będzie zawsze miał tę samą szerokość. To znaczy, jeśli zastosujesz do niego obramowanie po najechaniu kursorem, szerokość obramowania nie zwiększy całkowitej szerokości elementu; ramka zostanie dodana „wewnątrz” elementu, że tak powiem. Jeśli jednak dobrze pamiętam, musisz width
wyraźnie określić, aby to zadziałało. Co prawdopodobnie nie jest dla Ciebie opcją w tym konkretnym przypadku, ale możesz o tym pamiętać w przyszłych sytuacjach.