2

我对 IE(尤其是 IE9)有一个奇怪的偏移问题,它不会消失,input当没有理由时,一个盒子的偏移量比另一个盒子更高(站在更低的位置)。

这是一个放大版本,您可以在其中看到 offset

我已经删除了包括 CSS 样式在内的所有其他元素,但我仍然无法摆脱这个偏移问题。

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head></head>
<body>
<form action="" method="post">
<input type="hidden" name="login" value="login" />
<input name="loginusername" style="height:16px;" type="text">
<input name="loginpassword" style="height:16px;" type="password">
</form>
</body>
</html>

这是input来自 IE 的第一个盒子模型,它显示了所有的paddingmargin细节offset

这是input来自 IE 的第二个盒子模型

4

2 回答 2

6

这看起来很奇怪,但您可以尝试vertical-align: top在 CSS 中设置输入。至少在 IE8 中修复了它。

于 2013-06-17T02:06:05.437 回答
1

我在这里找到了答案:如何使用 CSS 消除元素的偏移量?. 偏移量是浏览器根据 CSS 计算的值。它对 CSS 中位置样式的值很重要。因此,可以通过添加 position:absolute; 来解决问题。到内联 CSS。

这是您修改后的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head></head>
<body>
<form action="" method="post">
<input type="hidden" name="login" value="login" />
<input name="loginusername" style="height:16px;" type="text">
<input name="loginpassword" style="height:16px; position:absolute;" type="password">
</form>
</body></html>
于 2013-06-17T02:13:47.847 回答