Подтвердить что ты не робот

Вертикальное пространство на элементах с положением: абсолютное

Как сделать элементы с position:absolute и динамической высотой занимать вертикальное пространство, используя только css? Есть ли трюк с контейнерами и дисплеем, который я могу использовать?

4b9b3361

Ответ 1

К сожалению, использование абсолютного позиционирования означает, по определению, что ваш элемент больше не занимает пространство. Так что нет, только через css нет способа сделать это.

Вы можете, конечно, использовать jQuery (или простой javascript), чтобы выполнить это. Как бы я это сделал, есть элемент space рядом с каждым вертикальным элементом. Закрепите как элемент пространства, так и абсолютно расположенный вертикальный элемент в относительно позиционированном div. При загрузке страницы измените height элемента пространства, чтобы он соответствовал высоте вертикального элемента.

Ответ 2

position: absolute означает, что они не занимают пространство в потоке. Однако вам не нужно анимировать использование поля, вы можете использовать float, чтобы элементы занимали все пространство и делали каждый из элементов position:relative.

div.animate-me {
   width: 300px;
   margin: 20px;
   float: left;
   left: -1000px; // Make them start offscreen
   position: relative;
   border: 1px solid red;
   visibility: hidden
}​

$('div').css().animate({
    left: 0
});

ОБРАЗЕЦ http://jsfiddle.net/qxzzX/1/