天天看點

CSS屬性選擇器

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,可以放心使用。