【发布时间】:2011-12-03 07:14:49
【问题描述】:
我在 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,“p”标签内的块级元素无效
<P>
<DIV>...</DIV>
</P>
但关闭<p>标签是可选的,
<p>content block 1
<p>content block 2
<p>content block 3
<form> ..... </form>
这似乎有效。如果块元素没有像第一个示例中那样显式关闭,它应该自动关闭<p>。
【问题讨论】:
-
所以您是说您的 HTML 代码无效,是浏览器的问题?
-
您希望 IE 从损坏的 html 中解释您的意图?
-
p 元素的结束标签是可选的,所以它不是无效的。
-
可选,但是在 P-tags 中包含块项目是“非法的”,这就是为什么它会失败。见:w3.org/TR/REC-html40/struct/text.html#edef-P
-
@Diodeus — 由于结束标记是可选的,因此元素以表单的开始标记结束。由于问题暗示“缺失”结束标记应该在
<form>之前,所以这不是问题。
标签: html css internet-explorer-9