区域内指定 element 的第一个,样式与后面的同类 element 不同

发布时间: 2018-12-06 12:33:02 作者: 大象笔记

例如,article-content div 内,第一个 h2 标签不需要设置 margin-top,可以这样实现

.article-content h2 {
	font-size: 1.6em;
	border-bottom: 1px solid #ddd;
	padding-bottom: .1em;
	margin-bottom: 2.4rem;
}

.article-content h2 ~ h2 {
	margin-top: 2.2em;
}

确实能达到预期的效果,但是这语法根本看不懂,也记不住。。。

但是,这样做,漏掉了一种情况,即 h2 不是第一个元素,有可能 p 是第一个元素,h2 在 p 后面。 这就造成,非文章首部的第一个 h2 上方间距不够。如图:

正确的做法是

.article-content h2 {
	font-size: 1.6em;
	border-bottom: 1px solid #ddd;
	padding-bottom: .1em;
	margin-bottom: 2.4rem;
	margin-top: 2.2em;
}

.article-content h2:first-child {
	margin-top: 0.2em;
}

参考

我是一名山东烟台的开发者,联系作者