![CSS3网页设计从入门到精通(微课精编版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/800/26846800/b_26846800.jpg)
2.4 属性选择器
属性选择器是根据标签的属性来匹配元素,使用中括号进行标识:
[属性表达式]
CSS3包括7种属性选择器形式,下面结合示例具体说明。
【示例】下面设计一个简单的图片灯箱导航示例。其中HTML结构如下:
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P41_15874.jpg?sign=1738860645-yUkMWiABqQuR5C8wLkOlh3UQnNIlh0t2-0-a169097e27aa104e5829fe4f9c1c928a)
使用CSS适当美化,具体样式代码请参考本节示例源代码,初始预览效果如图2.6所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P42_15978.jpg?sign=1738860645-LAwLUcXTA8Sgvn6eGuiOotuRVB9gs81X-0-06ad498672ef139998f7364fd6bada07)
图2.6 设计的灯箱广告效果图
1. E[attr]
选择具有attr属性的E元素。例如:
.nav a[id] {background: blue; color:yellow;font-weight:bold;}
上面代码表示选择div.nav下所有带有id属性的a元素,并在这个元素上使用背景色为蓝色,前景色为黄色,字体加粗的样式。对照上面的HTML结构,不难发现,只有第一个和最后一个链接使用了id属性,所以选中了这两个a元素,效果如图2.7所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P42_15995.jpg?sign=1738860645-ZC5eYHjrid1oa9pxD5mC8Co4QhNvHYWP-0-a205c62c4f36e468aff59c8cdc7176a2)
图2.7 属性快速匹配
也可以指定多属性:
.nav a[href][title] {background: yellow; color:green;}
上面代码表示选择div.nav下同时具有href和title两个属性的a元素,效果如图2.8所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P42_15996.jpg?sign=1738860645-2CSuqB8NFwikZeMGR0rnHAEiSBVOxxGR-0-33734469b50ac8987507915b4bd6297f)
图2.8 多属性快速匹配
2. E[attr="value"]
选择具有attr属性且属性值等于value的E元素。例如:
.nav a[id="first"] {background: blue; color:yellow;font-weight:bold;}
上面代码表示选中div.nav中的a元素,这个元素有一个id="first"属性值,预览效果如图2.9所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P43_16032.jpg?sign=1738860645-6CQVS7YafILJLXpGEcVuIKVAvjdO8KII-0-3c8b6ca3a73be3c6d0be8c6af001f9da)
图2.9 属性值快速匹配
E[attr="value"]属性选择器也可以多个属性并写,进一步缩小选择范围,用法如下:
.nav a[href="#1"][title] {background: yellow; color:green;}
预览效果如图2.10所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P43_16033.jpg?sign=1738860645-NQ0N0YjfXZ8TKl6kAxBM05VN8Ulu3K0g-0-f76002f4c27fe036b23b79a00a651e04)
图2.10 多属性值快速匹配
3. E[attr~="value"]
选择具有attr属性且属性值为一用空格分隔的字词列表,其中一个等于value的E元素。包含只有一个值且该值等于val的情况。例如:
.nav a[title~="website"]{background:orange;color:green;}
上面代码表示在div.nav下的a元素的title属性中,只要其属性值中含有website这个词就会被选择,结果“2”“6”“7”“8”这4个a元素的title中都含有,所以被选中,如图2.11所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P43_16056.jpg?sign=1738860645-MwL7iDTf9Smn6NeMi3jOAm5tryRh4h2R-0-b96fa3cd01c506c1ae79f3890211f63c)
图2.11 属性值局部词匹配
4. E[attr^="value"]
选择具有attr属性且属性值为以value开头的字符串的E元素。例如:
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P43_86051.jpg?sign=1738860645-JUFjRZAYMo1fCr2MuZOmC2BZfwYwGF54-0-90b4785e3f6b878da3e744ca0dc4847c)
上面代码表示选择含有title属性,并且属性值以http://和mailto:开头的所有a元素,匹配效果如图2.12所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P43_16057.jpg?sign=1738860645-dV1vIRfiG0hlK9STYQGROpBcQx9kRE4r-0-ae31a49e80b109096dc27e0a14f28b3c)
图2.12 匹配属性值开头字符串的元素
5. E[attr$="value"]
选择具有attr属性且属性值为以value结尾的字符串的E元素。例如:
.nav a[href$="png"]{background:orange;color:green;}
上面代码表示选择div.nav中元素有href属性且属性值以png结尾的a元素。
6. E[attr*="value"]
选择具有attr属性且属性值为包含value的字符串的E元素。例如:
.nav a[title*="site"]{background:black;color:white;}
上面代码表示选择div.nav中title属性值中有site字符串的a元素。上面样式的预览效果如图2.13所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P44_16098.jpg?sign=1738860645-6u3wRXmshjrEGwRaI7xLrS3T2gO70Qlk-0-d1fe40d4a1cd9f5968c4db4dcf3bddd9)
图2.13 匹配属性值中的特定子串
7. E[attr|="value"]
选择具有attr属性且其值是以value开头,并用连接符“-”分隔的字符串的E元素;如果值仅为value,也将被选择。例如:
.nav a[lang|="zh"]{background:gray;color:yellow;}
上面代码会选中div.nav中lang属性等于zh或以zh-开头的所有a元素,如图2.14所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P44_16099.jpg?sign=1738860645-1sPENbbdjOreSlQvqLriwWNEnWw21IZn-0-4a068f629dc2bac43e4dfe5690574d12)
图2.14 匹配属性值开头字符串的元素