使用 CSS 更改前选择器中的项目符号颜色

Change a bullet point color within a before selector with CSS

我正在尝试更改要点的颜色。通过下图你会更好地理解我的要求。

到目前为止,我已经成功了,但是我找不到将项目符号点更改为红色的方法。

这是我的 CSS :

h3#one {
    display: flex;
    flex-direction: column;
}

h3#one::before {
    content: '1.';
    font-size: 40px;
    margin-right: 24px;
    margin-bottom: 8px;
}
<h3 id="one">Lorem ipsum dolor sit amet, consectetur adipiscing elit</h3>

有没有办法用 CSS 来实现?

我不认为你可以用伪 class 实现这一点,但你可以这样做。

h3 {
  display:block;
}

h3 .red {
  font-size: 40px;
  margin-right: 24px;
  margin-bottom: 8px;
  color: red;
}
<h3>1<span class="red">.</span></h3>
<h3> Test</h3>

如果你只想要点红色,你可以用这样的跨度来做:<h3>Your text<span style="color: red">.</span></h3>

可以。您只是不应该在 pseudo-class 中使用“1”。相反,将值放在标签内并仅使用 ::before 来设置点的样式。

h3 {
display: flex;
flex-direction: column;}

h3::before {
position: absolute;
top: 0;
margin-left: 10px;
color: red;
content: '.';
font-size: 40px;
margin-right: 24px;
margin-bottom: 8px;}
<html>
<body>
<h3>1</h3>
</body>
</html>

如果您不想要这种方法,我建议您使用 span 标签来解决问题。

<h3>1<span style="color: red">.</span></h3>

您可以使用渐变背景和 background-clip: text

h3 {
    display: flex;
    flex-direction: column;
}

h3::before {
    counter-reset: num var(--num);
    content: counter(num) '.';
    font-size: 40px;
    margin-right: 24px;
    margin-bottom: 8px;
    align-self: start;
    background-image: linear-gradient(90deg, red, red), linear-gradient(90deg, black, black);
    background-size: 0.25em, auto;
    background-position: right;
    background-repeat: no-repeat;
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
}
<h3 style="--num: 1">Lorem ipsum dolor sit amet, consectetur adipiscing elit</h3>
<h3 style="--num: 2">Lorem ipsum dolor sit amet, consectetur adipiscing elit</h3>
<h3 style="--num: 3">Lorem ipsum dolor sit amet, consectetur adipiscing elit</h3>
<h3 style="--num: 42">Lorem ipsum dolor sit amet, consectetur adipiscing elit</h3>
<h3 style="--num: 256">Lorem ipsum dolor sit amet, consectetur adipiscing elit</h3>

但这并不可靠。 background-clip: text 属性 在某些浏览器上仍处于前缀之下。并且您需要根据字体手动设置数字和点之间的渐变截止值。