У меня было это по совершенно другой причине: я случайно вставлял текстовые символы (в частности, точки с запятой) в голову, которые каким-то образом переводились в тело, где они были скрыты другой разметкой и / или CSS. Но место осталось.
В моем случае ни само тело, ни какие-либо очевидные элементы первого потомка не имели верхнего поля или отступов. Дополнительный текст действительно был первым (текстовым) потомком тела, однако он не совсем соответствовал тексту, который мне нужно было удалить, чтобы решить проблему. В частности, я увидел следующий текст с большим количеством лишних пробелов:
<body>
";
<!-- rest of stuff here -->
Обратите внимание, что я использую шаблонизатор HTML (в частности, Razor), поэтому все ставки отключены, чтобы как произошло это преобразование из ; ;
в ";
.