具有波浪形和星形的属性选择器之间的CSS差异?

具有波浪形和星形的属性选择器之间的CSS差异?,css,Css,给定以下CSS选择器 [attribute~=value] { } [attribute*=value] { } 上面的两个选择器应该做完全相同的事情吗?还是有区别 我相信这是有区别的,但是什么呢?我发现的唯一一点是,每对中的第一个在CSS 2的规范中,第二个在CSS 3的规范中。 还有别的吗 与任何子字符串匹配。您可以将其视为包含调用的字符串 输入 匹配*=bar foo 不 foobar 对 foo-bar 对 foo barbaz 对 foobarbaz 对 调用~= 因此,当您使用:[

给定以下CSS选择器

[attribute~=value] { }
[attribute*=value] { }
上面的两个选择器应该做完全相同的事情吗?还是有区别

我相信这是有区别的,但是什么呢?我发现的唯一一点是,每对中的第一个在CSS 2的规范中,第二个在CSS 3的规范中。
还有别的吗

与任何子字符串匹配。您可以将其视为包含调用的字符串

输入 匹配
*=bar
foo
foobar
foo-bar
foo barbaz
foobarbaz

调用
~=

因此,当您使用:
[attrName~=stuff]
时,它将匹配具有
attrName
等于
“stuff”
或包含
“stuff”
“stuff”或
“stuff”
的每个元素。示例:

  • 选择器:
    [name~=ball]
  • 匹配项:

调用
*=

使用
[attrName*=stuff]
时,如果属性值中存在
stuff
,即使在某些单词中,它也会匹配,例如:

  • 选择器:
    [name*=ball]
  • 匹配项:
    • 所有与
      [name~=ball]
      匹配的,但也
    • 依此类推,只要属性的值包含字符串
      ball

注意:上面的链接指向jQuery的网站只是因为,对于那些特定的选择器,我发现它们的引用是最好的,但是那些属性选择器来自

MSDN还调用contains单词选择器


最后,
正则表达式
等效:

  • [属性
    *=
    值]=/value/
  • [属性
    ~=
    值]=/
    \b
    \b
    /

哈哈,超级简洁。最佳答案。