0

我在 Web 应用程序中有这个 html 脚本。

我知道,这是无效的 HTML,因为我不应该将表单相互嵌套,但是如果“某人”仍然这样做,我怎么能防止 IE 中的这种奇怪行为?是否有将无效表格保留在内部的解决方法?

<html><head>
    <style>
    form{
        display: inline;
    </style>
</head>
<body>
<form>
    <table border="1">
                <tr>
                            <td>first</td>
                            <td><form>...</form></td>
                            <td>second</td>
                </tr>   
    </table>
</form>

这会导致 Internet Explorer 中的“第一个”和“第二个”之间出现换行符。

它看起来像这样:

在此处输入图像描述

4

3 回答 3

4

这是无效的 HTML,这就是原因。Internet Explorer 将第二个表单的结束标记解释为第一个表单的结束标记。它不会*创建第二种形式。但是,由于这个原因,它破坏了表格并创建了 2 个表结构而不是 1 个。这就是为什么“第二个”在新行上的根本原因。

请阅读W3 规范以获取更多信息。这部分非常重要:

流式内容,但没有表单元素后代。

所以这不是 Internet Explorer 中的错误,而是您的 HTML 标记中的错误。Internet Explorer 只是解释与其他浏览器不同的有缺陷的 HTML 代码。

于 2013-06-07T11:33:43.157 回答
1

用于form- float: left;coz<form>元素是块级元素,你也错过}了 style 标签

于 2013-06-07T11:27:17.930 回答
0

你可以尝试设置一些 CSS 样式来形成,比如 padding:0px; 和边距:0px;

您可能需要创建一个类名并将其应用于类而不是一般的“表单”,否则您可能会得到不希望的结果。

顺便说一句,有些人会正确地认为你不应该有嵌套表单(表单中的表单)

于 2013-06-07T11:27:07.773 回答