javascript - 修复 CSS 流体网格中的子像素舍入问题

标签 javascript css rounding fluid-layout subpixel

我正在尝试创建一个流畅的 CSS 网格,它在 Firefox 和 IE8+ 中有效,但在亚像素舍入问题变得可见的 Safari/Chrome/Opera 中无效:

http://jsfiddle.net/bJKQ6/2/

.column {
  float: left;
  width: 25%;
}

主容器的宽度为 100%,如果您在 Safari/Chrome/Opera 中更改浏览器大小,您会看到四舍五入的宽度不一致。

在广泛阅读该问题后,我了解到子像素舍入“没有正确或错误的解决方案”,但 Firefox 方式对我来说似乎是最好的折衷方案。 (例如,如果我将 4 个 div 设置为 25% 的宽度,我希望覆盖区域为 100%。)

我想知道是否有我错过的纯 CSS 解决方案,或者一些 JavaScript 来解决问题。

谢谢!

更新:截至 2014 年 5 月,Chrome 33 和 Safari 7 似乎采用了“Firefox 方式”。

最佳答案

Stubbornella 的 OOCSS 框架(下面的链接)网格模块通过为最后一列提供以下覆盖来处理此问题:

float:    none;
overflow: hidden;
width:    auto;

这允许它占据容器内剩余的任何宽度。

要获得相同的行为,需要一些浏览器 fork (IE、ptzsch……): https://github.com/stubbornella/oocss/blob/master/core/grid/grids.css https://github.com/stubbornella/oocss/wiki/grids

关于javascript - 修复 CSS 流体网格中的子像素舍入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9635347/

相关文章:

c# - 在 C# 中四舍五入到小数点后两位

javascript - 在 Meteor [1.0.0] 中写入服务器上的文件(每次构建都不会丢失文件)

JavaScript onchange 函数

javascript - 通过update方法删除数组中的一个元素

jquery - img上的CSS3缩放和移动动画效果

swift - 将整数四舍五入为 3 的倍数

javascript - 将插入符号放在动态生成的跨度之外

css - 为什么 CSS @font-face 规则似乎只适用于某些字体?

javascript - 单击带有轮播的切换按钮后,Bootstrap navbar-collapse 消失

python - 将日期时间向下舍入到前一小时