詳解CSS3中屬性選擇器新增加的特性
零、概覽
CSS2支持的屬性選擇器用一個(gè)表達(dá)式[{屬性 | 屬性 {= | |= | ~=} 值}]
1.[class="a"]只能匹配class="a"的元素
2.[class~="a"]則可以匹配class="a"、class="a b"的元素
3.[lang|=en]則可以匹配lang="en"、lang="en-us"的元素。
CSS3新增*=、^=、$=三種匹配方式[{屬性 | 屬性 {*= | ^= | $=} 值}]:
1.*=表示模糊匹配,[href="163"]可以匹配href="163.com"、href="mail.163.com"等元素;
2.^=表示以指定字符開頭,[href^="/"]則匹配href="/a/a.htm"、href="/b"的元素
3.$=表示以指定字符結(jié)尾,[scr$=".png"]則匹配所有png圖片,如src="logo.png"
CSS3的屬性選擇器主要包括以下幾種:
1.E[attr]:只使用屬性名,但沒有確定任何屬性值;
2.E[attr="value"]:指定屬性名,并指定了該屬性的屬性值;
3.E[attr~="value"]:指定屬性名,并且具有屬性值,此屬性值是一個(gè)詞列表,并且以空格隔開,其中詞列表中包含了一個(gè)value詞,而且等號(hào)前面的“?”不能不寫;
4.E[attr^="value"]:指定了屬性名,并且有屬性值,屬性值是以value開頭的;
5.E[attr$="value"]:指定了屬性名,并且有屬性值,而且屬性值是以value結(jié)束的;
6.E[attr*="value"]:指定了屬性名,并且有屬性值,而且屬值中包含了value;
7.E[attr|="value"]:指定了屬性名,并且屬性值是value或者以“value-”開頭的值(比如說zh-cn);
一、E[attr]:屬性選擇器是CSS3屬性選擇器中最簡(jiǎn)單的一種。如果你希望選擇有某個(gè)屬性的元素,而不論這個(gè)屬性值是什么,你就可以使用這個(gè)屬性選擇器:
- .demo a[id] {background: blue; color:yellow;font-weight:bold;}
也可以使用多屬性進(jìn)行選擇元素,如E[attr1][attr2], 這樣只要是同時(shí)具有這兩屬性的元素都將被選中:
- .demo a[href][title] {background: yellow; color:green;}
注:IE6不支持這個(gè)選擇器。
二、E[attr="value"]:指定了屬性值“value”
- .demo a[id="first"] {background: blue; color:yellow;font-weight:bold;}
注:屬性和屬性值必須完全匹配,特別是對(duì)于屬性值是詞列表的形式時(shí),如:
test
- .demo a[class="links"]{color:red};
- .demo a[class="links item"]{color:red};
IE6不支持這個(gè)選擇器。
三、E[attr~="value"]:如果想根據(jù)屬性值中的詞列表的某個(gè)詞來進(jìn)行選擇元素,那么就需要使用這種屬性選擇器:E[attr~="value"],這種屬性選擇器是屬性值是一個(gè)或多個(gè)詞列表,如果是列表時(shí),他們需要用空格隔開,只要屬性值中有一個(gè)value相匹配就可以選中該元素,前面所講的E[attr="value"]是屬性值需要完全匹配才會(huì)被選中,他們兩者區(qū)別就是一個(gè)有“?”號(hào),一個(gè)沒有“?”號(hào)。
- .demo a[title~="website"]{background:orange;color:green;}
注:屬性選擇器中有波浪(?)時(shí)屬性值有value時(shí)就相匹配,沒有波浪(?)時(shí)屬性值要完全是value時(shí)才匹配。IE6不支持E[attr~="value"]屬性選擇器。
四、E[attr^="value"]:選擇attr屬性值以“value”開頭的所有元素,換句話說,選擇的屬性其以對(duì)應(yīng)的屬性值是以“value”開始的。
- .demo a[href^="http://"]{background:orange;color:green;}
注:IE6不支持E[attr^="value"]選擇器。
五、E[attr$="value"]:E[attr$="value"]屬性選擇器剛好與E[attr^="value"]選擇器相反,E[attr$="value"]表示的是選擇attr屬性值以"value"結(jié)尾的所有元素,換句話說就是選擇元素attr屬性,并且他的屬性值是以value結(jié)尾的,這個(gè)運(yùn)用在給你一些特殊的鏈接加背景圖片很方便的,比如說給pdf,png,doc等不同文件加上不同icon,我們就可以使用這個(gè)屬性來實(shí)現(xiàn).
- .demo a[href$="png"]{background:orange;color:green;}
注:IE6不支持E[attr$="value"]屬性選擇器。
六、E[attr*="value"]:選擇attr屬性值中包含子串"value"的所有元素。也就是說,只要你所選擇的屬性,其屬性值中有這個(gè)"value"值都將被選中。
- .demo a[title*="site"]{background:black;color:white;}
注:IE6不支持E[attr*="value"]選擇器。
七、E[attr|="value"]:稱作為特定屬性選擇器。這個(gè)選擇器會(huì)選擇attr屬性值等于value或以value-開頭的所有元素。
- .demo a[lang|="zh"]{background:gray;color:yellow;}
注:常常用的地方是用來匹配語言,IE6不支持E[attr|="value"]選擇器。
注釋:
1.屬性選擇器除了IE6不支持外,其他的瀏覽器都能支持。
2.E[attr="value"]和E[attr*="value"]是最實(shí)用的,其中E[attr="value"]能幫我們定位不同類型的元素,特別是表單form元素的操作,比如說input[type="text"],input[type="checkbox"]等,而E[attr*="value"]能在網(wǎng)站中幫助我們匹配不同類型的文件,比如說你的網(wǎng)站上不同的文件類型的鏈接需要使用不同的icon圖標(biāo),用來幫助你的網(wǎng)站提高用戶體驗(yàn),就像前面的實(shí)例,可以通過這個(gè)屬性給".doc",".pdf",".png",".ppt"配置不同的icon圖標(biāo)。
相關(guān)文章
css3之UI元素狀態(tài)偽類選擇器實(shí)例演示
這篇文章主要介紹了css3之UI元素狀態(tài)偽類選擇器 ,其中包括hover、active和focus,enabled,disabledread-only與read-write 等等,需要的朋友可以參考下2017-08-11- 本文總結(jié)了30個(gè)CSS3選擇器,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-13
- 這篇文章主要介紹了css3類選擇器之結(jié)合元素選擇器和多類選擇器用法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-09
IE8下CSS3選擇器nth-child() 不兼容問題的解決方法
這篇文章主要介紹了IE8下CSS3選擇器nth-child() 不兼容問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-16- 下面小編就為大家?guī)硪黄獙?duì)CSS3選擇器的研究(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦2016-09-16
- 這篇文章主要介紹了CSS3中的常用選擇器使用示例整理,是CSS3入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-06-13
- 這篇文章主要介紹了CSS3 新增選擇器的實(shí)例,需要的朋友可以參考下2019-11-13

