javascript - offsetWidth在不同浏览器中不一样

标签 javascript html css

FF 和 Chrome 之间的 element.offsetWidth 存在 1px 差异。

我一直在阅读试图理解这个问题。试图reset the CSS ,尝试将元素移离屏幕边框附近(我记得旧的 IE 如果靠近屏幕边框 10px 是不准确的)。已找到this answer关于 FF 需要 setTimeout,但没有回答为什么......

还是没有解决办法。我希望用普通 JS 或 CSS 来理解/修复它。

问题:

为什么会这样?我可以在 CSS 中做什么来使值保持一致?

jsFiddle:http://jsfiddle.net/f35j2/show/

html

<div id="wrapper" style="width: 203px; height: 203px;">
    <div id="inner" style="width: 50%; height: 50%; margin: auto; display: block;"></div>
</div>

最佳答案

内部元素的宽度是非整数。 FF 和 Chrome 对数字的四舍五入方式不同。您可以使用inner.getBoundingClientRect().width获取准确的宽度(即101.5)

这是因为父元素是203px。不是 202 或 204。

关于javascript - offsetWidth在不同浏览器中不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24104905/

相关文章:

javascript - Reactjs - 参数类型不可分配给参数类型

html - IE盒子模型错误

javascript - 当鼠标光标放置在 href 标签中时,隐藏或操作浏览器左下侧的 URL

css - 垂直对齐::before 的绝对定位内容以匹配父级的基线

javascript - Jquery 限制用户每分钟上传 5 个帖子

javascript - 如何检测第三方网站上的 JavaScript 事件

html - DIV 高度不起作用,尽管有明确的 :both

css "border-image"浏览器兼容性问题

javascript - 如何在 javascript (p5.js) 中相互比较数组(列表)(对象)的所有元素

javascript - 有没有一种灵活的方法来修改可编辑元素的内容?