Html CSS子字符串匹配属性选择器:包含多个类名

Html CSS子字符串匹配属性选择器:包含多个类名,html,css,css-selectors,Html,Css,Css Selectors,CSS“contains”选择器是 td[class*="foo"] 我可以选择多个具有 td[class*="foo bar"] 但是,对于 如何进行CSS“包含”通配符选择 顺便说一句:我不能使用td.foo.bar您要查找的选择器如下所示: td[class*="foo"][class*="bar"] td[class~="foo"][class~="baz"] { background-color: gold; } 但是,如果您需要使用这样的选择器,则通常表明您的类名逻辑不好

CSS“contains”选择器是

td[class*="foo"]
我可以选择多个具有

td[class*="foo bar"]
但是,对于

如何进行CSS“包含”通配符选择


顺便说一句:我不能使用
td.foo.bar

您要查找的选择器如下所示:

td[class*="foo"][class*="bar"]
td[class~="foo"][class~="baz"] {
  background-color: gold;
}

但是,如果您需要使用这样的选择器,则通常表明您的类名逻辑不好。

您要查找的选择器如下所示:

td[class*="foo"][class*="bar"]
td[class~="foo"][class~="baz"] {
  background-color: gold;
}

但是,如果您需要使用这样的选择器,那么这通常表明您的类名逻辑不好。

老实说,我不知道您所说的“失败”
td[class*=“foo bar”]
选择器在您的特定情况下对我来说是什么意思

但是,由于类名由空格分隔,因此可以使用多个
[attr~=value]
选择具有类的元素,如下所示:

td[class*="foo"][class*="bar"]
td[class~="foo"][class~="baz"] {
  background-color: gold;
}

从:

[attr~=value]
表示属性名为
attr
其值是以空格分隔的单词列表,其中一个是 正是“价值”


老实说,我不知道你所说的“失败”是什么意思,因为你的特殊情况对我来说是失败的

但是,由于类名由空格分隔,因此可以使用多个
[attr~=value]
来选择具有类的元素,如下所示:

td[class*="foo"][class*="bar"]
td[class~="foo"][class~="baz"] {
  background-color: gold;
}

从:

[attr~=value]
表示属性名为
attr
其值是以空格分隔的单词列表,其中一个是 正是“价值”

访问:(CSS属性选择器) 从上面查找给定字符串与根据您的问题指定的类中的字符串的匹配,我发现唯一有效且正确的选项是
*
~

1.

2.


多属性匹配

访问:(CSS属性选择器) 从上面查找给定字符串与根据您的问题指定的类中的字符串的匹配,我发现唯一有效且正确的选项是
*
~

1.

2.


多属性匹配

你说的“失败”是什么意思?虽然这不是选择类的正确方法,但对我来说似乎是可行的。@HashemQolami是对的。你能举一个失败的例子吗?
td[class~=“foo”][class~=“bar”]
将与
精确匹配,而与
我的错误不匹配-我的意思是它将因
而失败-我更新了问题是否有特定原因不能使用类选择器而不是属性选择器?您使用的标记语言没有以
class
属性形式表示的类语义吗?您所说的“失败”是什么意思?虽然这不是选择类的正确方法,但对我来说似乎是可行的。@HashemQolami是对的。你能举一个失败的例子吗?
td[class~=“foo”][class~=“bar”]
将与
精确匹配,而与
我的错误不匹配-我的意思是它将因
而失败-我更新了问题是否有特定原因不能使用类选择器而不是属性选择器?你使用的是一种没有类语义的标记语言,它的形式是
class
属性吗?我的坏-我的意思是它会在
中失败-我更新了问题是的,
td[class~=“foo”][class~=“baz”]
工作得很好。
td[class*=“foo”][class*=“bar”]
有什么区别?@Horen欢迎您。使用
[class*=“foo”]
my会在选择
元素时引发意外问题。正如andyb在他的文章中提到的那样。@Horen看一看。切换选择器以查看差异。@Horen:
~=
属性选择器在类选择器无法在您的情况下工作的唯一方法是如果您没有实际使用HTML…我的错-我的意思是
-它将失败-我更新了问题是的,
td[class~=“foo”][class~=“baz”]
工作得很好。
td[class*=“foo”][class*=“bar”]
有什么区别?@Horen欢迎您。使用
[class*=“foo”]
my会在选择
元素时引发意外问题。正如andyb在他的文章中提到的那样。@Horen看一看。切换选择器以查看差异。@Horen:
~=
属性选择器在类选择器无法在您的情况下工作的唯一方法是,如果您没有实际使用HTML…我正在电子邮件css中的媒体查询中使用它。我更喜欢使用不同的选择器,但据我所知,这是使其工作的唯一方法。出于Hashem Qolami回答中所述的原因,我建议不要对类名和其他分隔值使用
*=
。我在电子邮件css中的媒体查询中使用它。我更喜欢使用不同的选择器,但据我所知,这是使其工作的唯一方法。出于Hashem Qolami回答中所述的原因,我建议不要对类名和其他分隔值使用
*=
。您也可以将其发布在注释中。您也可以将其发布在注释中。