Rails добавляет фантомные пробелы выше yield

Это убивает меня.

Макет приложения:

<html>
  <head>
    ...
  </head>
  <body topmargin="0"><%= yield %></body>
</html>

Главная:

<div id="content">...</div>

Тем не менее, на отображаемой странице, во всех браузерах, есть строка предварительно отформатированного пробела, которая выталкивает содержимое из верхней части окна.

WHITESPACE! Y U НЕТ УХОДИТЬ

Откуда это?

Постановили

Неверная разметка HTML (li прямо в div) заставил все браузеры добавить пробел вверху. Странный!

4 ответа

Решение

У вас должен быть где-нибудь открытый html-тег, просто запустите ваш html через валидатор и посмотрите, перехватит ли он какой-либо.

http://validator.w3.org/

Исправьте ваш тег:

<%= yield %>

Я думаю, что вы смотрите в неправильном макете, потому что у вас есть

<body><%= yield %><body>

но на скриншоте у вас есть

<body topmargin="0">

У меня была эта проблема, и она поставила меня в тупик на несколько часов. В конце концов я заметил, что страницы, вызывающие проблемы, имели тип файла "UTF-8 Unicode (с BOM)", я просто преобразовал файл, чтобы удалить это, и он работал отлично.

Другие вопросы по тегам