Tag HTML -абзац автоматически закрывается в Firefox, когда содержит форму
Вопрос
Я наткнулся на странное поведение в Firefox. У меня есть динамически созданный текст, в который я вставил элемент формы, включая ссылку, чтобы иметь возможность передавать параметры с помощью метода POST. В идеале он должен просто течь с текстом и выглядеть как обычный якорь. Однако, в то время как он обычно отображается в IE, Firefox завершает абзац непосредственно перед формой, который вставляет нежелательный разрыв линии. У кого -нибудь есть идея, почему это происходит, и у вас есть обходной / альтернативный решение?
Привести к т.е. (ОК):
<p class="article" >This is my paragraph and here goes my
<form style="display: inline" name="link_form" action="link.html" method="post">
<input type="hidden" name="lnk_id" value="1" /><a class="link" href="#" onclick="link_form.submit()">link</a></form>**</p>**
Привести к Firefox (KO):
<p class="article" >This is my paragraph and here goes my**</p>**
<form style="display: inline" name="link_form" action="link.html" method="post">
<input type="hidden" name="lnk_id" value="1" /><a class="link" href="#" onclick="link_form.submit()">link</a></form>
заранее спасибо
Решение
Это совершенно нормально, тег P может содержать только встроенные элементы, что не имеет значения формы. (видеть http://www.w3.org/tr/html401/struct/text.html#h-9.3)
Поскольку спецификации HTML4 позволяют вам не закрывать теги, Firefox предполагает, что вы забыли закрыть свой P -тег перед началом вашей формы, отсюда и закрывающую теги, которую вы можете увидеть при осмотре DOM с помощью Firebug, например.