【发布时间】:2014-03-04 09:13:35
【问题描述】:
在 Chrome 33.0.1750.146 m 中,当具有 1 像素边框和滚动条的 div 在另一个具有百分比宽度 (= 0.5)时,有时会隐藏边框的右侧,具体取决于四舍五入。这似乎是因为滚动条的位置和 div 的右侧在不同的方向上进行了四舍五入,导致滚动条与 div 的右侧重叠了一个像素。
这是一个已知的错误还是有解决方法?我在 PhpBB 模板页面中遇到了这个图形故障,其中内容居中并自动计算宽度,这导致了 ---.5px 宽度 div,我将其追溯到以下最小可重现样本:
HTML:
<div id="wrapper">
<div class="box">
<p>Test content</p>
<p>Test content</p>
<p>Test content</p>
<p>Test content</p>
</div>
</div>
CSS:
.box {
height: 100px;
overflow: auto;
border: 1px solid;
}
#wrapper {
max-width: 75%;
margin: auto;
}
示例JSFiddle — 调整窗口大小并观察右边框闪烁/出现/消失。
【问题讨论】:
-
有趣。只有当
#wrapper的计算宽度为xxx.5px或xxx.75px时,右边框才会消失。以我的经验,子像素总是有点错误(各种浏览器/版本上的结果不同)。无法在模板中对计算出的宽度进行四舍五入? -
它并没有好多少,因为您可以看到滚动条出现故障但可以使用
outline? DEMO -
@Ruddy 已经好多了——这对我的 UI 来说是一个可以接受的解决方案。我注意到我的右边框在我的全尺寸 Chrome 中不可见,但没有意识到它与窗口大小有关。
-
@JordanTrudgett 我会留意任何可以绕过这个问题的东西。
-
@MysticEarth 你知道有什么方法可以强制元素的宽度为整数像素(同时保持自动调整大小吗?)
标签: css google-chrome