javascript - 我可以轻松地 "set"元素的 offsetWidth 吗?

标签 javascript width dhtml

注意:我知道 offsetWidth 是只读的

我正在尝试使弹出式“div”覆盖具有完全相同宽度的 tr 元素。

但是,对于如何设置我的 divwidth 以便它的 offsetWidthtr.

计算看起来像这样:

div.width = tr.offsetWidth - div.paddingWidth - div.marginWidth

但肯定有更好的方法(因为我只能想到以两个为一组来获取填充和边距偏移...)

具体来说,如果可能的话,我想要 YUI 2 的答案。

最佳答案

如果您将 div 的外边距和内边距清零,那么类似下面的内容应该可以工作:

YAHOO.util.Dom.setStyle(div, 'width', tr.offsetWidth + 'px');

根据您处理 divtr 边框的方式,您可能需要分配 tr.clientWidth

然后您可以根据需要在 div 的父/子元素上设置任何边距/填充以获得所需的外观。

确定您想做什么的关键是准确理解 clientWidth and offsetWidth measure 是什么,元素的 CSS width 是它的内容区域,不包括定义的任何边距、边框和填充在它上面(see the W3C box model here)。

您可以通过从

中查询来将填充等包括在您的计算中

关于javascript - 我可以轻松地 "set"元素的 offsetWidth 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4870469/

相关文章:

html - 拉伸(stretch) LI 和内容

Javascript 音频分层 eventListener HTML5 在多次迭代中失败

javascript - getElementById 的多个 ID

javascript - 通过 Websockets 发送多点触控事件

css - min-width 和 max-width 具有相同的值?

javascript - 如何在 jQuery 中获取溢出元素的可见高度

javascript - 使用 Javascript 从 JSON 中获取数据

javascript - 我怎样才能用javascript找出一个div中的div?

javascript - 滚动窗口在鼠标悬停时滚动

javascript - 使用 jQuery 更新数组中对象的物理位置