【发布时间】:2018-09-03 00:01:59
【问题描述】:
我们如何为每个::before 伪元素赋予不同的内容?我的代码如下所示:
.timeline h1::before {
position: absolute;
font-size: inherit;
left: 0;
}
.timeline h1:first-of-type:before {
content: '01';
color: #E82F3A;
}
.timeline h1:nth-of-type(2):before {
content: '02';
color: #E82F3A;
}
.timeline h1:last-of-type:before {
content: '03';
color: #E82F3A;
}
.timeline h1 {
position: relative;
color: #404C60;
padding-left: 35px;
font-size: 1.8rem;
}
<div class="timeline">
<div>
<h1>Heading</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>
<div>
<h1>Heading</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>
<div>
<h1>Heading</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>
</div>
我希望第一个 <h1> 的 ::before 伪元素具有内容“01”,第二个具有内容“02”,最后一个具有内容“03”。但是当我尝试代码时,所有<h1> 的::before 内容都是'03'。怎么了?
【问题讨论】:
-
每个div只包含一个h1。您需要
div:nth-of-type(..) h1作为选择器。 -
您真正想做的是查看 CSS Counters。 developer.mozilla.org/en-US/docs/Web/CSS/CSS_Lists_and_Counters/…
-
添加了
nth-of-type和基于 CSS 计数器的解决方案。
标签: html css css-selectors pseudo-element css-content