在一个position:relative
元素内box
,我有
- 一个绝对定位的元素
parent
attop:0
有几个 staticp
和h1..h6
inside。这些可能都有不同的边距/填充值。 - 一些绝对定位的元素,其中元素名称和内容与上面列表 #1 中的元素之一完全匹配。
目标是设置第二个元素的 y 值,使其与 1 中的集合中的对应元素完全重叠。
我采用了这种方法(使用闭包,但实际上可以使用任何东西),从content
用于生成列表 #1 的元素数组开始:
goog.dom.removeChildren(parent);
for (var i=0; i<content.length; i++) {
offsets.push(parent.offsetHeight);
goog.dom.appendChild(parent, content[i]);
}
return offsets;
然后,使用来自的值offsets
:
var matchedElm = source[i].cloneNode(true);
goog.style.setStyle(matchedElm, {"top": offsets[i] + "px"});
goog.dom.appendChild(box, matchedElm);
现在这适用于各种填充 and ,但当andmargin=0
上的边距为非 0 时会失败。我也尝试过“scrollHeight”,但似乎没有考虑到边距。然后我尝试直接从列表 #1 中的渲染元素获取,但这似乎产生与上述过程完全相同的结果来填充。p
h1..6
offsetTop
offsets
我怎样才能使重叠工作?我正在寻找原生 javascript 或闭包库解决方案。