为什么Google Chrome的元素放置不太精确?

时间:2010-11-07 19:23:01

标签: html css browser rendering cross-browser

例如,如果我制作了四个绝对定位为50%宽度和50%高度的图像块,则Internet Explorer中的结果如下所示:
http://img716.imageshack.us/img716/8376/96774641.png
如预期的那样,图像紧挨着彼此放置。

但Chrome中的相同代码会产生这样的结果:
http://img560.imageshack.us/img560/7976/chrome.png
图像缩小了一点,为中间的间隔腾出空间。

我的风格已包括:

border-style: none;
border-width: 0;
padding: 0;
margin: 0;

...那么为什么Chrome会将我的图片与其他图像区分开来,如何在不改变其他首先正确呈现的浏览器的显示的情况下修复它?

编辑: <link removed>
请注意,实际页面要复杂得多,有超过1,000 <img>个元素 它将在任何非硬件加速的浏览器中缓慢加载 我已经确认FireFox的渲染方式与IE8相同,图像旁边的图像应该是相同的。

3 个答案:

答案 0 :(得分:8)

这可能是一个舍入问题:例如50%的宽度可能最终为223.5px

当您使用固定大小的图像时,为什么不以像素为单位指定位置?

答案 1 :(得分:4)

您使用的是CSS重置吗?浏览器默认样式可能会导致恼人的问题,例如具有不同顶部边距高度的段落或其他布局怪癖。这种特殊情况可能无法通过CSS重置来修复,但它可以消除这种可能性。

可悲的是,用于设置背景图像比例的CSS3选项尚未以任何可靠的方式提供,或者您可以将图像设置为缩放到50%的重复背景图像,这当然没有间隙。很可能在相当长的一段时间内不会出现这种情况。

答案 2 :(得分:3)

您是否尝试使用检查器(右键单击图像,选择检查元素)来跟踪间距的来源?