Используете ли вы сброс таблицы стилей? Возможно, унаследованные браузером поля конфликтуют с вашим дизайном.
Например.
div, table, td, th, tr, {
margin : 0;
padding : 0;
border : 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
Вот ссылка на более обширный CSS reset
Также может быть полезно использовать инструменты разработчика (F12 в IE и расширение Firebug в Firefox) для устранения расхождений в вашем дизайне - если вы соберете конкретную информацию (например, 4px не учтены), вы будете лучше разобраться в проблеме.
P.S. Будьте особенно осторожны при работе с процентами - что-то вроде заполнения будет составлять процентные значения, что приведет к перерасходу. Я на самом деле не уверен, что ваши border : 1
соединения со 100% (в результате 100% + 1px,), но просто полезное напоминание.