我正在研究一些使用Element.getBoundingClientRect
(gBCR) 以及内联样式更新来执行计算的代码。这不适用于一般网站,我不关心或感兴趣是否有“更好的 CSS 方式”来完成这项任务。
JavaScript同步运行并执行以下步骤:
- 获取父母的 gBCR
- 进行计算,并且;
- 父元素的子元素已更新内联 CSS 样式(例如大小和边距)
- 再次获取父级的 gBCR
我是否保证计算的客户端边界将反映步骤 4 中父级的新边界矩形?
如果没有规范保证,这是现代1浏览器实现的“保证”吗?如果“大部分保证”,有哪些值得注意的例外情况?
元素没有被添加到 DOM 或从 DOM 中删除,并且被修改的元素是父节点的直接子节点;如果此类限制/信息是相关的。
1 “现代”:UIWebView (iOS 6+)、WebView (Android 2+),以及常见的 Chrome/WebKit、FF、IE9+ 嫌疑人——包括移动版本。