<div id="preamble" style="margin-bottom: 100px;">Preamble</div>
<div id="container" style="position: relative;">
<div id="content" style="position: relative; margin-top: 50px;">
Content
</div>
</div>
Прежде всего, я заново создаю таблицу стилей. Это сэкономит ваше время, когда у вас будет много элементов, а также сохранит ваш код чище.
Что я вижу, когда проверяю ваш код, так это то, что div содержимого отображается внутри контейнера с полем в верхней части 50 пикселей. Что не так?
Я думаю, что вы хотите достичь, это:
<div id="preamble" style="margin-bottom: 100px; border: solid black 1px;">Preamble
<div id="container" style="position: relative; border: solid black 1px;">
<div id="content" style="position: relative; margin-top: 50px; border: solid black 1px;">
Content
</div>
</div>
</div>
Удачи! Вы не вложили Div внутри другого, и, следовательно, это не было бы 150px вместе;). Помните, что Маржа за пределами ячейки и отступы внутри ячейки!
Когда я читаю сейчас, что вы хотите сохранить свою структуру HTML такой же, это невозможно.
Как только вы дадите своему первому div с полем 100px, это означает, что следующий элемент будет размещен под этим элементом на 100px. А так как вы следующий вложенный div с полем сверху 50px, это означает, что вы создаете более 150px общего пространства ...
Почему вы хотели сохранить свою HTML-структуру?