Я пытаюсь создать скрытый div с частичками рельсов внутри. Я намерен использовать этот скрытый div в качестве цели для fancybox, чтобы открыть форму редактирования во всплывающем окне.
Мой частичный код выглядит так:
<div style="display:none">
<div id="inline-edit-form-<%=feed_item.id%>" class="inline-edit-form">
<%= form_for (feed_item) do |f| %>
<%=render :partial => 'calendars/form', :locals => { :f => f }%>
<% end %>
</div>
</div>
Теперь в Chrome макет выполнен так, как задумано, а частичное изначально скрыто. Fancybox удастся отобразить этот фрагмент, если щелкнуть ссылку на источник и все работает нормально. Но в Firefox скрытый DIV по умолчанию не скрыт, и отображаются все элементы управления. Я проверил структуру HTML DOM на Chrome и Firefox, и между ними есть огромные различия.
Разметка в Chrome (правильно):
<div style="display:none">
<div id="inline-edit-form-596" class="inline-edit-form">
<form accept-charset="UTF-8" action="/calendars/596" class="edit_calendar" d="edit_calendar_596" method="post"></form>
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓">
<input name="_method" type="hidden" value="put">
<input name="authenticity_token" type="hidden" value="">
</div>
<div>
<label for="calendar_event">Event</label><br>
<input class="inline-edit-input" id="calendar_event" name="calendar[event]" size="30" type="text" value="Interesting event">
</div>
Вышеуказанная разметка верна и соответствует ожиданиям. Шокирующая разметка в Firefox:
<div style="display: none;">
<div class="inline-edit-form" id="inline-edit-form-598">
</div>
</div>
<div style="margin: 0pt; padding: 0pt; display: inline;"></div>
<div>
<label for="calendar_event">Event</label><br>
<input type="text" value="Another interesting important event" size="30"
name="calendar[event]" id="calendar_event" class="inline-edit-input">
</div>
Эта разметка не только неверна, она даже не отображает тег FORM. Я проверил и перепроверил мою структуру CSS и DOM, но Firefox просто решил прикрутить макет.
Любая помощь?