Vì bạn đã nói trong một nhận xét rằng bạn càng có nhiều tùy chọn thì càng tốt, đây là một tùy chọn khác.
Trong CSS3, có hai cái gọi là "mô hình hộp" khác nhau. Một phần thêm đường viền và phần đệm vào chiều rộng của một phần tử khối, trong khi phần tử kia thì không. Bạn có thể sử dụng cái sau bằng cách chỉ định
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
Sau đó, trong các trình duyệt hiện đại, phần tử sẽ luôn có cùng chiều rộng. Tức là, nếu bạn áp dụng đường viền cho nó khi di chuột, chiều rộng của đường viền sẽ không thêm vào chiều rộng tổng thể của phần tử; đường viền sẽ được thêm vào "bên trong" phần tử, có thể nói như vậy. Tuy nhiên, nếu tôi nhớ không lầm, bạn phải chỉ định width
rõ ràng để điều này hoạt động. Có thể đây không phải là một lựa chọn dành cho bạn trong trường hợp cụ thể này, nhưng bạn có thể ghi nhớ nó cho các tình huống sau này.