Ответ 1
Нет. Когда у вас есть два смежных вертикальных поля, используется большее из двух, а другое игнорируется.
Так, например, если у вас есть два элемента отображения блока, A, а затем B под ним, а A имеет нижний край 3em, а B имеет верхний край 2em, тогда расстояние между ними будет 3em.
Если вы установите границу или дополнение, это предотвратит возникновение коллапса. В приведенном выше примере расстояние между этими двумя элементами будет равно 5em.
Если вы не задаете никаких полей, тогда не будет никаких полей для развала. Он не имеет ничего общего с используемым типом элемента - он применим ко всем типам элементов, а не только к элементам <div>
.
Подробнее читайте спецификацию CSS 2.1.