请问[attribute~ = value]和[attribute * = value]有什么区别?

时间:2013-02-01 00:52:38

标签: css attributes

找不到这两个选择器之间的区别。两者似乎做同样的事情,即根据包含给定字符串的特定属性值选择标签。

对于[attribute~ = value]:http://www.w3schools.com/cssref/sel_attribute_value_contains.asp

对于[attribute * = value]:http://www.w3schools.com/cssref/sel_attr_contain.asp

2 个答案:

答案 0 :(得分:5)

第一个([attribute~=value])是一个以空格分隔的搜索...

<!-- Would match -->
<div class="value another"></div>

...第二个([attribute*=value])是子字符串搜索...

<!-- Would match -->
<div class="a_value"></div>

W3Schools似乎没有明确区分这种区别。使用better resource

答案 1 :(得分:1)

[attribute~ =“value”]选择包含由空格分隔的给定单词的元素,而[attribute * =“value”]选择包含给定子字符串的元素。

例如,[data-test~ =“value”]在下面的div上不匹配,而[data-test * =“value”]会。

<div data-test="my values go here"></div>