如果内部文本等于字符串,则使用 CSS 更改特定元素的文本颜色

Changing a specific element's text color using CSS if the inner text equals a string

所以我正在编辑这个 FANDOM wiki。

我这里有这个元素:

<h1 class="page-header__title">Captain</h1>

如您所见,“船长”是 Wiki 中的文章名称。每篇文章都有自己的子域link,并且会使该元素的内部文本不同。

如果内部文本等于 Captain,我是否只能简单地更改元素的 CSS?

希望你知道我想要完成的事情。

这是我要完成的示例:

.edit-info-user a[href$="/wiki/User:Potato"]::Before {
    content: "( Bureaucrat ) ";
    font-size: 9px;
    color: #f00;
    letter-spacing: 0.5px;
}

如您所见,如果 link 等于“/wiki/User:Potato”,这只会篡改元素的 CSS。

你不能。 您可以匹配元素、元素中属性的名称以及元素中命名属性的值。

所以在没有 javascript 的情况下 的唯一方法是添加 dataclass.

示例:

h1[data-text=Captain] {
  color: red
}
<h1 class="page-header__title" data-text="Captain">Captain</h1>

这里有javascript的方法,但我不推荐。

let title = document.querySelector('.page-header__title');


if (title.innerText === 'Captain') {
    /* if you want to edit directly its style */
    title.style.color = 'red';
    /* if you want a class */
    title.classList.add('.your-class');
}
<h1 class="page-header__title">Captain</h1>

您可以尝试将 classList 添加到具有匹配 class 的所需元素中,并确保使用您想要的 [=12= 设计创建此 class ] 文件。