我在 IE9 中试过这段代码,没想到它因为缺少 </p>
而被搞砸了标题后。
<style>
#MyForm div {
width: 200px;
height: 30px;
float: left;
}
</style>
<div>
<p><b>Login</b>
<form id="MyForm" action="test.html">
<div>
<label>My Email</label>
<input />
</div>
<div>
<label>My Password</label>
<input type="password">
</div>
</form>
</div>
这是一个错误还是我的问题?
更新
根据 W3C, block 级元素在“p”标签内是无效的
<P>
<DIV>...</DIV>
</P>
但关闭<p>
是可选的标记为,
<p>content block 1
<p>content block 2
<p>content block 3
<form> ..... </form>
这似乎是有效的。 block 元素应自动关闭 <p>
如果它没有像第一个示例那样明确关闭。
最佳答案
这确实是一个 IE9 错误。
在做了更多测试(并在表单中添加了一些 <span>
之后),在 IE9 标准模式下,IE9 似乎无法识别 <form>
is not allowed作为 <p>
的后代但确实认识到 <div>
也是不允许的。
因此,它将元素作为 p 元素节点的后代插入,直到它遇到第一个 <div>
。 , 此时它终止 <form>
和 <p>
然后在表单之后插入表单正文的其余部分。
当遇到</form>
时它将它视为非开放元素的结束标记并忽略它。
关于html - 带有可选 </p> 关闭的 IE9 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7692565/