边距不会通过父级的填充折叠

The margin does not collapse through the parent's padding

我想用不同的颜色显示 <blockquote> 元素,所以我添加了 background-color CSS 属性。但不幸的是,在我完成此更改后,<blockquote> 元素的彩色框将文本包裹得太紧:

我在 <blockquote> 元素中添加了 padding: 10px CSS 属性 以在文本周围添加 space。但不幸的是,在我完成此更改后,彩色框在垂直方向上太大了:

发生这种情况是因为子 <p> 元素有边距:

如果没有父元素的填充,这些边距会与周围的其他边距重叠。但是当添加填充时,边距会推开填充添加额外的 space 因为它们不能通过填充折叠。

如何使内部元素的边距通过父元素的填充折叠?如果不可能,我如何删除由内部元素的边距创建的额外 space?

删除填充(至少顶部和底部一个)并在 <blockquote> 上设置 overflow: hidden

这只是包含边距的技巧之一。至少还有5个。