Html CSS能找到具有任何id的元素吗?

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</

我在一个不受我直接控制的页面上有很多相同的元素(所以我不能更改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>
...
<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,class
item
的第一个div必须是黑色的,而下一个div(div id为
brand.
的div)必须是红色的。他唯一能区别第一个div和包含
品牌的div
的div的方法是针对包含
品牌id的div。使用此选项-奇怪的是,我自己的.item[id]解决方案不起作用,但这似乎起作用,谢谢!它本该起作用的,看看这把小提琴。但是,在我看来,它太宽泛了,你可能会意外地将目标锁定在一些未来的div上:)请记住,其中包含正则表达式的选择器(即任何在等号之前带有修饰符的属性选择器;例如,
^=
$=
*=
)是可以使用的最慢的选择器。如果你真的大量使用它们,可能会导致CSS渲染性能问题。@feeela我想这是显而易见的,但你确实让我想到了这一点。我想知道是否有任何关于性能影响的研究。在你的案例中,我会针对
品牌
,因为这对于这个案例更为具体,可以防止意外地用
品牌
红色:)的
id
给未来的
div
着色是的,正如我提到的,他必须设置id=''。无论如何,费拉有正确的答案。
.item[id^="brand"]{
    color:red;
}