我在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中“第一个”和“第二个”之间出现换行符。
它看起来像这样:
答案 0 :(得分:4)
这是无效的HTML,这就是原因。 Internet Explorer将第二个表单的close标记解释为第一个表单的close标记。它不会* 创建第二种形式。 然而,由于这个原因,它打破了表并创建了2个表结构而不是1。这是为什么“第二个”在新行上的根本原因。
请阅读the W3 specification了解详情。这部分非常重要:
流内容,但没有表单元素后代。
因此,它不是Internet Explorer中的错误,它是HTML标记中的错误。 Internet Explorer只会解释与其他浏览器不同的错误HTML代码。
答案 1 :(得分:1)
将float: left;
用于form-coz A <form>
元素是块级元素,
而且你错过了样式标签中的}
答案 2 :(得分:0)
你可以尝试设置一些CSS样式来形成,比如padding:0px;和保证金:0px;
您可能需要创建一个类名并将其应用于该类而不是一般的“表单”,否则您可能会得到不希望的结果。
顺便说一句,有些人会认为你不应该有嵌套的表格(表格中的表格)