利用HTML元素的特定属性来选择元素有很多种方法。下面会依次介绍各种属性选择器。
利用[attribute]属性选择器可以选择具有该指定属性的HTML元素。(该属性可以是标准属性,也可以是凭空造出来的属性,但是肯定是标准属性的浏览器兼容性更广。)
如下例所示:
a[target] {
background-color: yellow;
}
举一个凭空造出来的fuck属性,如下例所示,所有具有fuck属性的元素,都会表现为背景黄色,上面的例子和a元素进行了组合,这个例子中不仅凭空造出fuck属性,而且不和a元素组合,这也就是为啥具有fuck属性的span元素也会表现为背景黄色。
[fuck] {
background-color: yellow;
}
使用[attribute="value"]选择器来选择指定属性等于指定值的HTML元素。如下所示,选择target属性等于_blank的a元素:
a[target="_blank"] {
background-color: yellow;
}
使用[attribute~="value"]选择器来选择指定属性包含指定值的HTML元素。如下所示,选择title~="zhuan"的元素即target属性中只要含有“zhuan”这个词的都属于目标元素。(被包含的这个词必须是独立成词的,更详细解释请看下方备注)
[title~="zhuan"] {
background-color: yellow;
}
备注:title~="zhuan"这个词指目标target属性中只要含有“zhuan”这个词的都属于目标元素,像“zhuan fou”、“zhuan”、“fuck zhuan jia”等都是符合该选择器规则;而“zhuanfou”、“zhuan-fou”等都不符合,因为“zhuan”没有被空格隔开而单独成词。
使用[attribute*="value"]选择器来选择指定属性包含指定值的HTML元素。该选择器只要指定属性包含指定值即可,不需要指定值独立成词。
[title*="zhuan"] {
background-color: yellow;
}
使用[attribute|="value"]选择器来选择指定属性以指定值开头的HTML元素。但是开头的这个词必须是完整的,与后续的词之间必须以-符号来隔开,示例参详下方备注。
[class|="top"] {
background: yellow;
}
备注:class|="top"这个选择器,符合的class取值有“top-title”、“top”、“top-”、“top-666”等;“topcontent”、“top666”、“my-top”则不符合。
使用[attribute^="value"]选择器来选择指定属性以指定值开头的HTML元素。而这个选择器不同的是不要求指定值是完整单词,只要开头是指定值,后面不管是什么都无所谓。
[class^="top"] {
background: yellow;
}
使用[attribute$="value"]选择器来选择指定属性以指定值结尾的HTML元素。不要求指定值是完整单词,只要结尾是指定值,前面不管是什么都无所谓。
[class$="tent"] {
background: yellow;
}
属性选择器已经介绍得差不多了,都挺实用的,最后举一个例子来进一步说明:
input[type="text"] {
width: 150px;
display: block;
margin-bottom: 10px;
border: 1px solid #46acb6;
background-color: #eef8f8;
}
input[type="button"] {
width: 100px;
margin-left: 55px;
margin-top: 18px;
display: block;
}