在这个特定的例子中,听起来你为 blockquote 添加了一个填充(如果你还有背景颜色或边框,它可能看起来更好)并且因为 blockquote 默认有一个 margin-bottom,padding-bottom 和 margin-底部是加在一起的。
我目前最喜欢的处理方式是这样的:
使用萨斯:
p, blockquote, .other-margined-elements {
margin: 1rem 0;
&:first-child {
margin-top: 0;
}
&:last-child {
margin-bottom: 0;
}
}
生成的 CSS:
p, blockquote, .other-margined-elements {
margin: 1em 0;
}
p:first-child, blockquote:first-child, .other-margined-elements:first-child {
margin-top: 0;
}
p:last-child, blockquote:last-child, .other-margined-elements:last-child {
margin-bottom: 0;
}
使用此方法,只需确定要添加到列表中的元素即可。我当前的列表是这样的:h1、h2、h3、h4、h5、h6、p、ul、ol、dl、table、blockquote、div、section、article、aside、fieldset
如果您觉得前面的代码有点过火,还有其他方法可以做到这一点:
blockquote > :first-child {
margin-top: 0;
}
blockquote > :last-child {
margin-bottom: 0;
}
多亏了:first-child
和:last-child
psuedo 类,没有必要写出每一个组合。