Вероятно потому, что у body, по умолчанию, есть margin (причем у каждого браузера разный).
Для решения этой проблемы принято в css вставлять следующий код:
*{
margin: 0;
padding: 0;
border: 0;
}
Это позволяет во всех элементов зафиксировать конкретные значения отступов и границ, а не отдавать это на откуп браузеру.