如果希望选择具有某个属性的元素,而不论该属性的值是什么,可以使用属性选择器。
例如要选择有 class 属性(值不限)的所有 h1 元素,可以这样写:
h1[class]{}
也可以根据多个属性进行选择,例如,为了将同时有 href 和 title 属性的HTML超链接的文本置为粗体,可以写作:
a[href][title]{font-weight: bold;}
还可以只选择有特性属性值的元素,例如想要选择链接指向 “http://www.163.com” 的 a 标签:
a[href="http://www.163.com"]{}<span style="font-family:'Microsoft YaHei';font-size:14px;line-height:21px;">
同样,也可以把多个属性值选择器连接在一起,例如:
a[href="http://www.163.com"][title="网易"]{}
注意,这种格式要求属性值必须完全匹配,例如:
就不能被 p[class=”link1″] 成功匹配,必须写作 p[class=”link1 link2″]。如果想要只用一个属性值来匹配,需要使用波浪线(~),例如:
p[class~="link1"]{}/* ~可用于任何属性,不仅限于class */
这个选择器等价于
p.link1{}
在IE7+的浏览器中,还支持“子串匹配选择器”,如下所示:
[foo^="bar"] /* 选择 foo 属性值以 "bar" 开头的所有元素 */
[foo$="bar"] /* 选择 foo 属性值以 "bar" 结尾的所有元素 */
[foo*="bar"] /* 选择 foo 属性值中包含 "bar" 的所有元素 */
例如,想要将指向”163.com”的所有链接设置为粗体,可以使用如下代码:
a[href*="163.com"]{font-weight: bold;}
还有一种特定属性选择器,如下所示:
*[lang|="en"]{}
这个规则会选择 lang 属性等于 en 或者以 en- 开头的所有元素。