Par défaut, width
règle la largeur
du contenu de la boîte, c'est-à-dire
que le padding et la bordure ne sont pas comptés.
box-sizing:border-box
!
Pour compter le padding et la bordure dans la largeur,
il faut changer le « mode de calcul » des dimensions en
précisant box-sizing:border-box
. (Regarder le code !)