【问题标题】:html paragraph tag automatically closes in firefox when containing a formhtml 段落标签在包含表单时在 Firefox 中自动关闭
【发布时间】:2011-03-15 13:39:54
【问题描述】:

我在 Firefox 中偶然发现了一个奇怪的行为。我有一个动态创建的文本,我在其中插入了一个包含链接的表单元素,以便能够通过 post 方法传递参数。理想情况下,它应该与文本一起流动并且看起来像一个普通的锚。 然而,虽然它在 IE 中正常显示,但 Firefox 会在表单之前终止该段落,这会插入一个不需要的换行符。 有谁知道为什么会发生这种情况并有解决方法/替代解决方案?

在 IE 中的结果(ok):

<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>

提前致谢

【问题讨论】:

    标签: html firefox forms tags paragraph


    【解决方案1】:

    这很正常,一个P标签只能包含内联元素,而表单不是这样的。 (见http://www.w3.org/TR/html401/struct/text.html#h-9.3

    由于 HTML4 规范不允许您关闭标签,Firefox 假设您忘记在表单开始之前关闭 P 标签,因此您可以在使用 Firebug 检查 DOM 时看到关闭标签。

    【讨论】:

    • 感谢您的快速回复。所以你说IE弄错了?知道如何解决这个问题吗? “显示:内联”没有结果吗?
    • @Argo:解决方法:不要使用p 标签。请改用div
    • 是的,IE 错了。将段落放在表单中,而不是相反(使用您设置的提交按钮,使其看起来像一个链接,而不是顶部有一些 JS 的断开链接)。元素的显示方式不会改变它的,因此不会改变它在HTML中允许存在的位置。
    • 是的,您可以使用 DIV 容器代替您的 P。从语义上讲,您的代码是错误的,段落包含文本,而不是表单。不,您不能使用一些 CSS 技巧来更改 HTML 规范 ;-)
    猜你喜欢
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多