为什么下面的代码在 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>
为什么下面的代码在 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>
发生这种情况的原因是您缺少一个<body>
打开的标签。当<body>
HTML 中没有明确显示打开标记时,IE(至少 6 个)会错误地呈现文档树,并且任何涉及form
元素的选择器都无法正常工作。
在这里,我添加了 body 标签,它可以工作。
就在昨天,我记录了几乎相同的错误。看起来我将不得不更新描述,不仅要考虑到缺少 body 标签的表单无法设置样式,而且如果它在选择器中,其他元素也无法设置样式。
正如doctororange 指出的那样,您也可以通过不在form
选择器中指定来解决此问题,但我建议您输入<body>
标签。
因为 IE 不符合 web 标准。
在我看来,form
选择器似乎挡住了路,至少使用三重嵌套选择器:
这有效:
#div1 input.submit{
display:block;
}
这有效:
form input.submit{
display:block;
}
这不会:
#div1 form input.submit{
display:block;
}
如果您在 ie6 上进行测试,请尝试:
#div1 form .submit {display:block;}