MDN 教程

原文地址 [developer.mozilla.org](https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors)

存否和值选择器

这些选择器允许基于一个元素自身是否存在(例如href)或者基于各式不同的按属性值的匹配,来选取元素。

选择器示例描述
[attr]a[title]匹配带有一个名为 attr 的属性的元素——方括号里的值。
[attr=value]a[href="https://example.com"]匹配带有一个名为 attr 的属性的元素,其值正为 value——引号中的字符串。
[attr~=value]p[class~="special"]

匹配带有一个名为 attr 的属性的元素 ,其值正为 value,或者匹配带有一个 attr 属性的元素,其值有一个或者更多,至少有一个和 value 匹配。

注意,在一列中的好几个值,是用空格隔开的。

[attr|=value]div[lang|="zh"]匹配带有一个名为 attr 的属性的元素,其值可正为 value,或者开始为 value,后面紧随着一个连字符。

子字符串匹配选择器

这些选择器让更高级的属性的值的子字符串的匹配变得可行。例如,如果你有box-warningbox-error类,想把开头为 “box-” 字符串的每个物件都匹配上的话,你可以用[class^="box-"]来把它们两个都选中。

选择器示例描述
[attr^=value]li[class^="box-"]匹配带有一个名为 attr 的属性的元素,其值开头为 value 子字符串。
[attr$=value]li[class$="-box"]匹配带有一个名为 attr 的属性的元素,其值结尾为 value 子字符串
[attr*=value]li[class*="box"]匹配带有一个名为 attr 的属性的元素,其值的字符串中的任何地方,至少出现了一次 value 子字符串。

大小写敏感

如果你想在大小写不敏感的情况下,匹配属性值的话,你可以在闭合括号之前,使用i值。这个标记告诉浏览器,要以大小写不敏感的方式匹配 ASCII 字符。没有了这个标记的话,值会按照文档语言对大小写的处理方式,进行匹配——HTML 中是大小写敏感的。

备注:此外还有一个更加新的s值,它会强制在上下文的匹配正常为大小写不敏感的时候,强行要求匹配时大小写敏感。不过,在浏览器中它不太受支持,而且在上下文为 HTML 时也没啥用。

原文地址:https://www.cnblogs.com/qq3279338858/p/14053171.html