【发布时间】:2013-05-26 05:53:48
【问题描述】:
我有一个连续占用 829 像素的容器,并且有一个相同大小的背景图像。
我在该容器中有一个 div,它根据 829px 容器计算其宽度。 在 safari 上,div 的宽度大约是 173.8px,但由于 safari/webkit 向下舍入,它被截断并变成 173px 的宽度。
这个 829 像素的容器在同一行内嵌了 3 个 div。第一个 div 丢失了 1px,第二个 div 丢失了 2px,第三个 div 丢失了 3 个像素,因此第三个 div 向左移动了三个像素。在 ipad 上,损失了 6 个像素。
我尝试搜索亚像素渲染问题,并阅读了 john resigs 文章和其他一些 SO 问题,但我找不到解决方案。
在google上,我找到了一篇文章:http://www.pixafy.com/blog/2013/05/css-subpixel-rendering/#more-310 我试图将其应用于我的情况,但我无法避免不设置在容器 829px 上计算的宽度。
我能做什么?
【问题讨论】:
-
使用 33.333333% 作为宽度假设三列布局,如果存在边距或填充,也将它们计算为 %,并从上面的宽度中减去它们,如果存在边框,则使用 box-sizing : 边框。 (还修复了填充计算)。
-
是的,我可以这样做,但如果我使用 .33333*829= 276.33px, .33*3=1pixel,那么最后一个 div 中仍然会丢失 1 个像素,所以最后一个 div 将被移动在 ipad 上左移 2 个像素。
-
我相信使用百分比单位会导致宽度的计算方式不同,这应该可以解决您的问题。这是一个演示:jsfiddle.net/pZg4d
-
嗯我不明白,我已经使用它作为宽度的百分比,因为 webkit 会向下取整百分比。
-
等一下,您正在为您的子 div 使用百分比宽度,您仍然看到这个吗?我从来没有遇到过这个问题=\
标签: css layout responsive-design percentage subpixel