繁体   English   中英

Javascript将两个元素彼此重叠放置

[英]Javascript position two elements on top of each other

我有两个div,一个在另一个之上。 第二个绝对位于其下方(相对div内的绝对div)。

我想将第二个div移动到另一个div的顶部,因此它出现在中间。

此过程是将DIV2的style.top设置为与DIV1相同,理论上应将其放置在它的顶部。 但是到目前为止,尝试都失败了。

绝对定位工作正常,因为输入值会正确移动它,但是我认为我使用错误的方法来获取DIV1的高度/顶部值。

有想法吗?

我尝试了这个:

divLoading.style.top = divContent.style.top;

但它保持原样。

编辑:问题不是绝对/相对如何工作,而是哪些javascript值是要使用的正确值。 使用DIV2.style.top = DIV2.style.top-DIV1.clientHeight将其移到顶部...但是clientHeight不正确,因为如果DIV1更改大小,它将DIV2向上移得太远。

编辑:offsetTop似乎为零。

相对位置的div中的绝对位置的div,默认情况下将“借用”它是相对父对象的顶部和左侧位置。 这意味着通过设置left:0; top:0 left:0; top:0 div将共享相同的位置。

如果要向上移动第二个div,则必须设置一个负的顶部(即top: -200px )。 top和left属性是相对于基本位置而不是主体(除非div不在相对位置的父对象中,在这种情况下,主体是基本位置)

如果div1相对放置,则顶部和左侧的值将使div相对于正常流中的位置移动。 因此style.top = 10会将其从正常位置向下移动10个像素。

如果位置是“绝对”,则style.top = 10会将div从相对于其定位的div向下移动10像素(即,具有position:relative或文档主体的先前元素)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM