有没有办法使一个div相对于它的兄弟元素进行绝对定位?例如:在一个div中有两个其他的div - div1和div2。我想要将div2相对于div1进行绝对定位。
绝对定位取决于“当前定位上下文”,这可能包括父元素(如果绝对或相对定位),但永远不会包括同级元素。
您是否可以重新组织dom,使其具有父子关系而不是兄弟关系?如果可以,您可以将父元素的位置设置为相对或绝对,将子元素的位置设置为绝对,那么子元素的位置将保持相对于父元素的绝对位置。
正确答案是:不,但至少它的垂直位置可以受到兄弟元素的影响。
正如其他答案所述,绝对定位
然而:绝对定位元素还会受到其兄弟元素(在元素之前的那些)的影响。如果这些前面的兄弟元素被相对定位,并且您的绝对定位元素的顶部属性未设置,则它将在这些相对定位的兄弟元素下方垂直放置。
<div class="relativeContainer">
<div class="relative block">relative 1</div>
<div class="relative block">relative 2</div>
<div class="absoluteTopZero block">absolute top 0</div>
<div class="absoluteTopInherited block">absolute</div>
</div>
请查看这个示例: https://jsfiddle.net/fgxeu54t/28/
根据您的需求,您可以使用适当的左/上/右/下值将它们浮动或绝对定位。
发布您的标记并解释您要实现的准确目标。
试着使用jQuery
<script type="text/javascript">
$('#div2').css('margin-left', $('#div1').outerWidth() +XXX + 'px');
.prompt {
position: absolute;
bottom: 0;
pointer-events: none;
}
.promptOuterWrapper {
display: flex;
flex-wrap: wrap;
position: relative;
width: 100%;
}
.promptInnerWrapper {
position: relative;
width: 100%;
height: 0;
}
.mainform {
width: fit-content;
width: 30%;
justify-content: center;
}
body {
background-color: white;
min-height: 100vh;
min-width: 100%;
align-items: center;
justify-content: center;
display: flex;
flex-direction: column;
}
<div className={styles.mainform}>
<form>
<input type="text" />
<div className={styles.promptOuterWrapper}>
<div className={styles.promptInnerWrapper}>
<div className={styles.prompt}>
This is a snippet above its sibling
</div>
</div>
<input type="text" placeholder="target"/>
</div>
</form>
</div>