我感觉您遇到了盒子模型问题,因为您在 Quirks 模式下进行渲染。 IE7+ 和所有其他浏览器使用 W3C 盒子模型,而 IE6 在 quirks 模式下使用 IE 盒子模型。
IE 框模型(称为传统框模型),在元素的宽度/高度中包含内边距和边框。
在 IE 盒子模型下,宽度为 100px、每边 2px 内边距、3px 边框和每边 7px 边距的盒子的可见宽度为 114px。
W3C 盒子模型(这是标准盒子模型),从元素的宽度/高度中排除了内边距和边框。
在 W3C 盒子模型下,宽度为 100 像素、每边有 2 像素内边距、3 像素边框和每边 7 像素边距的盒子的可见宽度为 124 像素。
(来源:456bereastreet.com)
为了让 IE 使用 W3C 盒子模型(这是所有其他浏览器都使用的),您的页面需要以 Strict 模式呈现。默认情况下,IE 以 Quirks 模式呈现。
为了在 IE 中触发 Strict 模式,您必须指定一个 doctype。您可以使用以下任何文档类型:
HTML4 严格:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd" >
XHTML 1.0 严格:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 过渡:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
您的文档类型必须是出现在您页面上的第一件事。它甚至在<html> 标签之前,在它自己的行上。 (添加<?xml> prolog 会导致 IE 回到 Quirks 模式,如果有的话,请将其删除。
在此处了解有关 Quirks/Strict 模式的更多信息:
CSS - Quirks mode and strict mode
虽然添加 doctype 来切换标准模式可能无法解决您的所有问题,但您至少会朝着正确的方向迈出一大步。