仅当文本等于X时应用css
我有这样一个链接:仅当文本等于X时应用css,css,Css,我有这样一个链接: <h1> <a href="#">Title 001 - Stuff</a> </h1> h1 a[text="Title 001"] 但这不起作用 而且。。。然后我想知道是否有可能在标题XXX中这样做,其中XXX是一个动态数字。恐怕这在CSS中是不可能的 您使用的是: 而且你没有一个叫做text的属性 您必须使用Javascript来处理这种情况。曾经有一个想法:contains伪选择器,但从未实现过。您不能按内容
<h1>
<a href="#">Title 001 - Stuff</a>
</h1>
h1 a[text="Title 001"]
但这不起作用
而且。。。然后我想知道是否有可能在标题XXX中这样做,其中XXX是一个动态数字。恐怕这在CSS中是不可能的 您使用的是: 而且你没有一个叫做text的属性
您必须使用Javascript来处理这种情况。曾经有一个想法:contains伪选择器,但从未实现过。您不能按内容选择,但您可以像几乎已经做过的那样使用它
<h1>
<a href="#" data-content="Title 001 - Stuff">Title 001 - Stuff</a>
</h1>
属性中存在重复内容
如果希望避免使用JavaScript,可以在实际属性中复制内容gasp,并基于该属性选择:
然后选择以标题开头的任何内容:
a[数据内容^=标题]{
颜色:红色;
}
手动测试文本内容
或者,您必须采用JavaScript方法:
var links=document.queryselectoral a;
变量模式=/^Title\s\d{3}/;
对于var i=0;i.长度;i++{
如果pattern.test链接[i].textContent{
links[i].classList.add;
}
}
这只是一个示例,说明了如何向所有匹配元素添加.distinction类
使用jQuery进行过滤
如果您使用的是jQuery或类似的实用程序,则无需太多赘述即可完成此任务:
$a.filterfunction{
返回/^Title/.test$this.text;
}.AddClassDifference;
标题:数字:
如果您只想隔离和设置标题XXX部分的样式,而您没有访问源模板的权限,那么您也可以使用JavaScript:
$a.htmlfunction索引,html{
返回html.replace/Title\d+/,$1;
};
以上假设您正在使用jQuery,但如果您不是,则可以通过以下操作完成相同的任务:
var anchors=document.getElementsByTagNamea
,长度=锚。长度
,el;
而长度-{
el=锚[长度];
el.innerHTML=el.innerHTML.replace/Title\d+/,$1;
}
使用css
<a href="#" data-content="Title 001 - Stuff">Title 001 - Stuff</a>
a[data-content^="Title"] {
color: red;
}.
不…CSS无法检测内容。不,您无法设置文本样式,您只能设置元素样式,将文本包装到元素中,然后设置元素样式。您需要使用JavaScript并应用CSSHow来执行此操作。您正在制作此HTML吗?为什么不在标签中添加一个类呢?请看Thank@jonathan sampson的作品很棒,但我只会应用样式标题XXX文本,而不是整个文本。我想如果没有像这样的环绕标签是不可能的。但这是不可能的,因为文本来自cms,我无法更改文本,也不想使用Javascript。@singuerinc您正确地认为您需要将该文本包装到新元素中。如果您没有访问源代码的权限,也可以使用JavaScript对其进行包装。
a[data-content="Title 0001 - Stuff"] {
color: red;
}
<a href="#" data-content="Title 001 - Stuff">Title 001 - Stuff</a>
a[data-content^="Title"] {
color: red;
}.
$('a').filter(function (i, element) {
return element.text == "Title 001 - Stuff";
}).css('color','green');