Резюме: заботится ли абсолютно позиционированный элемент о своих братьях и сестрах при любых обстоятельствах (являются ли братья относительными, абсолютными, статическими)?
Насколько я понимаю, абсолютное позиционирование игнорирует братьев и сестер.
.absoluteBox {
position: absolute;
width: 100%;
height: 100%;
background-color: yellow;
border: 1px solid red;
box-sizing: border-box;
top: 0;
/*
why is top 0 necessary?
If i do not set it, the inner yellow box will position itself after the grey box
The grey box has no position property assigned to it, and even if it did, it should not matter
-- because the inner-absolute box should just be looking to its ancestor for its position
*/
}
.greyBox {
display: flex;
height: 20px;
width: 50px;
background-color: grey;
}
<div class="absoluteBox">
outer yellow box
<div class="greyBox"></div>
<div class="absoluteBox">
inner yellow box should completely fill up screen
</div>
</div>
У меня есть контейнер ("Внешний контейнер"). Абсолютное положение, 100% x 100% ширины и высоты. Он занимает весь экран в jsFiddle, как и должно быть.
Я поместил ребенка во «Внешний контейнер», без свойств, связанных с позицией. ("greyBox" в скрипке).
Затем я поместил еще один div Absolute 100x100 внутрь «Внешнего контейнера». Назовите это «Внутренний контейнер».
ПРОБЛЕМА: Почему Inner-Container располагается после greyBox? Он должен игнорировать братьев и сестер, быть выведенным из нормального «потока» позиционирования и просто смотреть на своего ближайшего позиционированного предка (внешний контейнер) при определении его положения.
absolute
не имеет свойств положения (верхнее, правое, нижнее, левое), то он займет свое место в соответствии с его положением в HTML как обычный элемент. - person Brett DeWoody   schedule 06.03.2018