2013-02-15 2 views
13

В последнее время у меня была проблема с полями, но я не смог ее решить. Мой HTML выглядит следующим образом:Наложение поля CSS, а не расстояние

<div class="info-box">Some text</div> 
<div class="form">...</div> 

CSS:

.info-box{ 
    border-radius: 5px; 
    border: 1px solid red; 
    margin-bottom: 20px; 
} 

.form{ 
    margin-top: 20px; 
} 

И проблема в том, что поля перекрываются друг с другом, а не дают 40px расстояние между двумя элементами.

Мой вопрос: почему? Я обнаружил, что добавление в .info-box overflow: скрытое исправление, но, может быть, есть лучший способ?

+0

вы можете разместить более, их контейнер другие CSS и HTML. –

ответ

37

Снова - вам нужно понять, как интерпретировать поля. Маржа относится к позиции другого элемента , не включая его поля. Вы не можете суммировать поля.

How margins work

+1

Да, но почему, когда я добавил переполнение: скрытый в .info-box, он работал? Я предполагаю, что прокладки можно суммировать? – adi86

+0

@ user1785951 - Я попробовал это с вашим предложением, и это не сработало для меня :) Да, paddings можно суммировать, потому что они находятся в блочном элементе - они ссылаются на содержащий элемент, а не на братьев и сестер. Но вы должны помнить, что они не работают как поля. – Kamo

+0

Хорошо знаю, спасибо большое – adi86

Смежные вопросы