CSS選擇器主要分為五大類:元素選擇器,關系選擇器,屬性選擇器,僞類選擇器和僞元素選擇器。平時用的最多的是元素選擇器和關系選擇器,而本文主要講講用得比較少的屬性選擇器。
首先亮出本文通用的例子:
<!--html-->
<p name="zhangsan">張三(zhangsan)</p>
<p name="liusanjie">劉三姐(liusanjie)</p>
<p name="zhang-ming">張明(zhang-ming)</p>
<p name="lisan">黎三(lisan)</p>
<p name="sandy lisan">李三(sandy lisan)</p>
<p>無名氏</p>
接下來分别舉例講講七大屬性選擇器。
一、E[att],篩選具有att屬性的元素
css代碼:
p[name]{ color: #f00;}
顯示結果:
p[name]
可以看出,隻要具有name屬性的元素都會被篩選出來,而不具有name屬性的“無名氏”顔色沒有變化。
二、E[att="val"],篩選att屬性值為val的元素
p[name="lisan"]{ color: #f00;}
p[name="lisan"]
可以看出,隻要name屬性值為“lisan”的元素都會被篩選出來,而name屬性為“sandy lisan”的元素并不會被篩選。
三、E[att~="val"],屬性值為用空格分隔的字詞清單,其中一個等于val的元素(包含隻有一個值且該值等于val的情況)
p[name~=lisan]{ color: #f00;}
p[name~=lisan]
可以看出,除了可以篩選出name屬性值為“lisan”的元素,name屬性值為“sandy lisan”的元素同樣也會被篩選出來。
四、E[att^="val"],篩選att屬性值以val開頭的元素
p[name^=zhang]{ color: #f00;}
p[name^=zhang]
可以看出,隻要是name屬性值以“zhang”開頭的元素都會被篩選出來。
五、E[att$="val"],篩選att屬性值以val結尾的元素
p[name$=san]{ color: #f00;}
p[name$=san]
可以看出,隻要是name屬性值以“san”結尾的元素都會被篩選出來。
六、E[att*="val"],篩選att屬性值中包含val的元素
p[name*=san]{ color: #f00;}
p[name*=san]
可以看出,隻要是name屬性值中包含“san”的元素都會被篩選出來。
七、E[att|="val"],篩選att屬性值以val開頭并且其後緊跟着 “-” 的元素
p[name|=zhang]{ color: #f00;}
image.png
可以看出,隻要是name屬性值以“zhang”開頭并且其後緊跟着 “-” 的元素都會被篩選出來,是以隻有“張明”顔色變紅,而“張三”顔色不變。
相容性:以上七個屬性選擇器均相容主流浏覽器,IE相容到IE7,可以放心使用。