【发布时间】:2011-06-19 17:16:40
【问题描述】:
注意:我知道 offsetWidth 是只读的
我正在尝试使弹出式“div”覆盖具有完全相同宽度的tr 元素。
但是,我对如何设置我的div 的width 使其offsetWidth 与tr 完全相同。
计算类似于:
div.width = tr.offsetWidth - div.paddingWidth - div.marginWidth
但肯定有更好的方法(因为我只能想到两个一组的填充和边距偏移......)
具体来说,如果可能的话,我想要一个 YUI 2 的答案。
【问题讨论】:
-
在我看来您已经回答了自己的问题。我唯一的建议是分别获取 div 计算的左右边距和填充值,因为它们都可能不同。
-
@Matt Ball:好的,所以我将标题更改为 轻松 设置宽度。我只是很难相信它没有内置到某个库中(即使它不是 YUI)
-
另请注意,计算样式等可能会返回像 '40px' 这样的值,这对算术不太有用
-
您必须通过元素的样式访问边距和填充信息,例如
div.style.paddingLeft。请记住它有一个单位,所以如果它不是以像素为单位,那么你就不走运了。如果是这样,那么您必须首先解析数字部分才能使您的计算正常工作,这就是为什么我更喜欢按照我的回答中所述将所有内容都归零的原因。 (您也许可以通过window.getComputedStyle方法获得一些更好的标准化边距和填充信息,但我不知道浏览器是否支持它。)
标签: javascript width dhtml