2

为什么下面的代码在 FF 中将提交按钮放在自己的行上,但在 IE 中却在同一行上?

<style type="text/css">
#div1 form input.submit {display:block;}
</style>

<div id="div1">
<form>
hi
<input type="submit" class="submit" value="hello there">
</form>

</div>
4

3 回答 3

3

发生这种情况的原因是您缺少一个<body>打开的标签。当<body>HTML 中没有明确显示打开标记时,IE(至少 6 个)会错误地呈现文档树,并且任何涉及form元素的选择器都无法正常工作。

在这里,我添加了 body 标签,它可以工作。

就在昨天,我记录了几乎相同的错误。看起来我将不得不更新描述,不仅要考虑到缺少 body 标签的表单无法设置样式,而且如果它在选择器中,其他元素也无法设置样式。

正如doctororange 指出的那样,您也可以通过不在form选择器中指定来解决此问题,但我建议您输入<body>标签。

于 2010-10-01T08:33:14.470 回答
0

因为 IE 不符合 web 标准。

在我看来,form选择器似乎挡住了路,至少使用三重嵌套选择器:

这有效:

#div1 input.submit{
display:block;
}

这有效:

form input.submit{
display:block;
}

这不会:

#div1 form input.submit{
display:block;
}
于 2010-10-01T08:28:43.000 回答
0

如果您在 ie6 上进行测试,请尝试:

#div1 form .submit {display:block;}
于 2010-09-30T19:27:29.233 回答