Это вызвано обвалом маржи .
Нормальный поток документов
В случае, когда <div id="logo">
не является плавающим, его верхнее поле фактически торчит из верхней части содержащего его элемента, что толкает все вниз. Причина такого поведения (как указано в статье выше) заключается в том, что если у вас есть серия абзацев со следующим CSS:
p {
margin: 1em 0;
}
Они будут иметь только 1em поля между ними, а не 2em (что может быть результатом, если поля не сжимаются).
Поплавок Fix
Когда вы перемещаете <div id="logo">
, он выводит его из обычного потока документов, что означает, что его верхнее поле больше не сворачивается с полем его родителя.
Исправления
Другими вариантами исправления коллапса полей в вашем случае будет добавление 1px верхнего / нижнего отступа или границы к вашему <div id="header">
.