Как автоматически складывать divs вертикально внутри родителя?

Вот что я пытаюсь выполнить...

  • "parent" имеет позицию: relative
  • "div 1-3" имеют положение: absolute

Однако, когда я это делаю, мне приходится присваивать определенные "верхние" значения в моем CSS. Таким образом, div 1 может быть верхним: 50px, div 2 будет top: 150px, а div 3 будет top: 225px;

Есть ли способ убедиться, что div продолжают стекать внутри родителя без назначения верхних значений и/или абсолютного позиционирования?

Ответы

Ответ 1

A div должен уже отображаться как блок и принимать полную "строку". Вот некоторые HTML и CSS, чтобы привести пример, сравнить его с вашим кодом:

http://jsfiddle.net/mWcWV/

<div id="parent">

    <div class="child">Foo</div>
    <div class="child">Bar</div>
    <div class="child">Baz</div>

</div>

Ответ 2

Элементы Div являются блочными элементами, что означает, что они будут принимать полную строку и что любой элемент рядом с ними пропустит строку. Просто выполните:

<div></div>
<div></div>
<div></div>

Если это не сработает, вам, вероятно, нужно будет отобразить их: inline-block;

Ответ 3

Должно быть прямо:

HTML:

<div class="container">
    <div class="red"></div>
    <div class="blue"></div>
    <div class="green"></div>
</div>

CSS

.container {
    position: relative;
    width: 500px;
    height: 500px;
    background-color: #ffbf00;
}
.red {
    background-color: #f00;
    width: 200px;
    height: 150px;
    margin: 5px auto;
}
.blue { 
    background-color: #0f0;
    width: 200px;
    height: 150px;
    margin: 5px auto;
}
.green {
    background-color: #00f;
    width: 200px;
    height: 150px;
    margin: 5px auto;
}

Отметьте fiddle.

Ответ 4

В css используется файл...

div
{
    display : block;
}

Что даст строка прерывания для каждого блока div, и эта функция по умолчанию и не использует технику relative - absolute.

Ответ 5

Просто удалите абсолютное позиционирование. Центрируйте divs с помощью margin:auto, а затем укажите любые вертикальные поля, которые вам нравятся.

Ответ 6

Вы можете указать margin для внутреннего div.