Tag HTML -абзац автоматически закрывается в Firefox, когда содержит форму

StackOverflow https://stackoverflow.com/questions/5312567

Вопрос

Я наткнулся на странное поведение в 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, например.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top