Html CSS能找到具有任何id的元素吗?
我在一个不受我直接控制的页面上有很多相同的元素(所以我不能更改HTML)。这可能是这样的:Html CSS能找到具有任何id的元素吗?,html,css,Html,Css,我在一个不受我直接控制的页面上有很多相同的元素(所以我不能更改HTML)。这可能是这样的: <div class="item">This text should be black</div> <div class="item" id="brand_one">This text should be red</div> <div class="item" id="brand_two">This text should be red</
<div class="item">This text should be black</div>
<div class="item" id="brand_one">This text should be red</div>
<div class="item" id="brand_two">This text should be red</div>
...
<div class="item">This text should be black</div>
.item[id] { color:red; } / .item# { color:red; }
但是身份证上有几百个,所以这不是一个选项
我要找的是这样一条规则:
<div class="item">This text should be black</div>
<div class="item" id="brand_one">This text should be red</div>
<div class="item" id="brand_two">This text should be red</div>
...
<div class="item">This text should be black</div>
.item[id] { color:red; } / .item# { color:red; }
我知道这在Javascript中是可能的,但在CSS中是否存在这一点?是的,存在这一点。在您的情况下,您应该使用:
div[id*="brand"] { color: red; }
这将选择id包含品牌的所有div
s,并将其涂成红色
编辑:您还可以使用以下命令,确保其仅针对id
名称开头带有brand\uu
的id
-s:
div[id^="brand_"] { color: red; }
这将避免将来具有包含品牌的id
的其他div
也将成为目标
编辑2:为了使其更加具体,您只能针对class=“item”
后面的id
s:
这针对所有id
开头带有品牌的div
,并将项作为类
是的,可以使用:
CSS[attribute^=value]选择器
[attribute^=value]选择器用于选择属性值以指定值开头的元素
你的情况也是如此
<style>
[id^="brand"] {
color:red;
}
<style>
[id^=“品牌”]{
颜色:红色;
}
参考:
您可以尝试使用css属性选择器:
div.item{
颜色:黑色;
}
div.item[id^='brand']{
颜色:红色;
}
分区代码{
文本转换:大写;
}
部门代码[id^='brand']{
颜色:蓝色;
}
此文本应为黑色
这个文本应该是红色的
这个文本应该是红色的
这个文本应该是黑色的
此文本应大写
此文本应为大写和蓝色
以下是另一种方法
<style type="text/css">
.item:not([id='']) {
color:red;
}
</style>
.项目:非([id=“”]){
颜色:红色;
}
但它假设您可以设置id='':
此文本应为黑色
不确定在id未指定的情况下这将如何工作 我们可以使用
.item[id^="brand"]{
color:red;
}
^=表示“以开始”。因此,我们可以搜索以“品牌”开头的id。我认为您需要使用CSS变量,如果我没有弄错的话,这就是SCSS。我不明白为什么您需要这样做,因为id需要是唯一的。如果你试着用classes这样做会更有意义,正如你在他的例子中看到的那样,@Andrew,classitem
的第一个div必须是黑色的,而下一个div(div id为brand.
的div)必须是红色的。他唯一能区别第一个div和包含品牌的div
的div的方法是针对包含品牌id的div。使用此选项-奇怪的是,我自己的.item[id]解决方案不起作用,但这似乎起作用,谢谢!它本该起作用的,看看这把小提琴。但是,在我看来,它太宽泛了,你可能会意外地将目标锁定在一些未来的div上:)请记住,其中包含正则表达式的选择器(即任何在等号之前带有修饰符的属性选择器;例如,^=
,$=
,*=
)是可以使用的最慢的选择器。如果你真的大量使用它们,可能会导致CSS渲染性能问题。@feeela我想这是显而易见的,但你确实让我想到了这一点。我想知道是否有任何关于性能影响的研究。在你的案例中,我会针对品牌
,因为这对于这个案例更为具体,可以防止意外地用品牌
红色:)的id
给未来的div
着色是的,正如我提到的,他必须设置id=''。无论如何,费拉有正确的答案。
.item[id^="brand"]{
color:red;
}