Вы должны ознакомиться с CSS Box Model . Он объясняет, где работают отступы, поля и границы, а также ширина.
Однако обратите внимание, что разные браузеры реализуют это по-разному: в частности, В Internet Explorer есть ошибка блочной модели (это печально известно в IE6 - я не знаю, исправлено ли это в IE7 или IE8), который вызвал печально известный взлом CSS-режима.
Вкратце, Internet Explorer установил свою блочную модель для включения отступов при вычислении ширины, в отличие от официального стандарта, в котором ширина должна составлять только содержимое.