Рассмотрим текст, содержащий несколько абзацев. Вы хотите, чтобы каждый абзац был разделен на 2em, и вы хотите, чтобы первый абзац был отделен от предыдущего контента на 2em, а последний абзац был отделен от следующего контента на 2em.
Это легко сделать с помощью следующего CSS, потому что верхнее и нижнее поля, разделяющие абзацы, будут разрушены:
p {
margin-top: 2em
margin-bottom: 2em;
}
Если поля не свернулись, это привело бы к тому, что поля были разделены пробелом 4em, а не 2em. Без разрушения полей единственным способом достижения желаемого эффекта было бы установить некоторые дополнительные правила для первого и последнего абзацев, что потребовало бы присвоения им класса или идентификатора (который необходимо было бы поддерживать, если текст когда-либо изменялся) или оборачивая их в ненужный в противном случае дополнительный элемент и используя: first-child и: last-child, или ... ну, вы поняли.
Я могу гарантировать, что, если бы не произошло сужение полей, у SO было бы много дублирующих вопросов, требующих обходных путей для достижения согласованного интервала, который обеспечивает вышеуказанное правило: -)